【问题标题】:convert javascript to jquery .width将 javascript 转换为 jquery .width
【发布时间】:2017-07-04 23:06:03
【问题描述】:

我正在使用此脚本根据屏幕宽度加载小图像或大图像。

    <script>
var jt_width = screen.width;
//var jt_height = screen.height;
if (jt_width < 361) {document.write('<div class="small-image"><img src="http://www.example.com/small-image.jpg" alt="small image alt"></div>') } else { document.write('<div class="large-image"><img src="http://www.example.com/large-image.jpg" alt="large image alt"></div>')};
</script>

缺点是在手机上,当有人从纵向转到横向时,它不会即时更改,我想使用 jquery 来做到这一点。

我在网上阅读了有关使用 window.outerWidth 或 .width() 等不同可能性的信息,我了解到 .width() 是浏览器兼容性方面的最佳解决方案。

我想将上面的脚本转换为 jquery 版本,但由于我对 javascript 几乎一无所知,所以我不知道该怎么做。这就是我所拥有的

function load(){
    w.value = $(window).width();
    h.value = $(window).height();
}

如何使用 jquery 获得相同的输出?

【问题讨论】:

  • 即时更改当您调整窗口大小时它是否在浏览器中工作?你有 onresize 事件监听器吗?

标签: javascript jquery width outerwidth


【解决方案1】:

您的新脚本无助于脚本的响应性。你需要添加一个监听器:

<script>
var jt_width = screen.width;
function doAThing() {
  if (jt_width < 361) {
    document.write('<div class="small-image"><img src="http://www.example.com/small-image.jpg" alt="small image alt"></div>') } else { document.write('<div class="large-image"><img src="http://www.example.com/large-image.jpg" alt="large image alt"></div>')
  };
}

doAThing();
window.addEventListener('resize', doAThing);
</script>

编辑:我很确定 'resize' 可以很好地用于定位,但是如果您对其进行测试并且效果不佳,您也可以在该函数上添加一个 orientationchange 侦听器:

window.addEventListener('orientationchange', doAThing);

【讨论】:

  • 今天晚些时候我要试试这个,但我不明白这部分:“但是如果你发短信”。您指的是“测试”吗?
  • 无法让这个工作。见这里:jsfiddle.net/WendiT/vxykg8ae 其余内容在调整大小时消失。在浏览器中,页面会持续加载。
  • 什么不起作用?它似乎对我有用。现在我回来看看这个,还有一些其他的事情我也应该提到。你真的不应该为此使用document.write。您应该使用另一种方法,例如element.appendChild()。另外,您可能应该检查一下您要附加的元素是否已经存在,也就是说它不会每次都重新附加它。
  • “什么不工作?”请参见此处:jsfiddle.net/WendiT/vxykg8ae 其余内容在调整大小时消失。在浏览器中,页面会持续加载。
  • 我喜欢这个选项,但我不知道如何在第一次加载时获取图像,所以在调整大小之前。 jsfiddle.net/WendiT/dwr42g2o
【解决方案2】:

这是一个使用 jquery 的实现:

$( window ).resize( function ( ) { 
     var width = $( window ).width( );
     var height=$( window ).height( );
     /**on resize you can change your content or code based on your condition*/
});
/*This event will be triggered when the window size will change */

【讨论】:

  • 当我改变手机的方向时,这会起作用吗?
  • 我也无法让这个工作。见这里:jsfiddle.net/WendiT/akwufv0q 图片根本加载不出来,可能是我实现错了。
猜你喜欢
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 2010-10-12
  • 2016-01-16
相关资源
最近更新 更多