jquery - jQuery 和不同浏览器的问题

标签 jquery html css

我使用基本的 CSS、HTML 和 jQuery 制作了简单的画廊,但它几乎没有错误,我也不知道哪里出了问题。它在 Firefox 中运行良好,但在其他浏览器中却不行。这是代码

$(document).ready(function(){

 var x=0; var lava=0;
  //right arrow
$("#p_sipka").click(function(){
  if(x<9){
          x++; //used as a "position counter"
          lava = parseInt($("#slider").css("left"), 10); //parse a value of slider css.left property into var lava
          lava=lava-800; //substract 800 (pixels) - WORKS FINE IN FIREFOX, THROWS NaN in other browsers
          $("#slider").css("left",lava);  //set new value to slider
         }
  else if(x==9){
                $("#slider").css("left","0px");
                x=0;
               }    
});

第一个问题: 它应该移动 8000px 宽的 slider div,一页是 800px 宽,所以要向左或向右移动画廊,我通过单击箭头更改 slider div 的左属性。我试图以某种方式调试它。
Firefox 首先,x 的值为 0 然后,当我单击右箭头时(顺便说一下,左箭头在任何浏览器中都可以正常工作)x< 的值 为 1,left 属性更改为 -800(不,不是 800px,因为我必须使用 parseInt,但它有效)。
其他浏览器: 它改变了 x 的值,但不改变 left 属性。alert(x) 按原样抛出 1left 属性抛出 NaN,点击 10 次后,它开始正常工作,但它仍然抛出 NaN
第二个问题:
CSS 过渡。
我想让我的画廊变得漂亮和生动,所以我使用了 CSS transition 属性并将其设置为 1second;。它工作正常,需要 1 秒来更改页面。所以它很好地改变了 left 属性,例如从 800px 到 1600px。但是当我第二次点击我的箭头时,第一个动画还没有完成,它会在第二个设置的值上增加或减去另一个 800 像素。例如,我点击,它从 800 变为 1600,但是当我点击左值大约 500 像素时,它增加了 800 像素,左值现在是 1300 像素,我的画廊看起来不像它应该的那样。有什么方法可以阻止我的 jQuery 代码在第一个动画完成之前再次运行?

这是完整的代码 http://jsfiddle.net/QuyjZ/

最佳答案

第一个问题


 lava = parseInt($("#slider").css("left").replace(/px$/i,""), 10)

第二个问题...


lava = math.Ceil(parseInt($("#slider").css("left").replace(/px$/i,""), 10)/800)*800

但实际上你应该计算页数并乘以索引 * 800 以获得你的位置

关于jquery - jQuery 和不同浏览器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14788330/

相关文章:

java - 从表中的其他下拉列表填充多个下拉列表

javascript - 加载宽度/高度最初由 PERCENTAGE 设置的元素后,如何获取其实际宽度/高度?

java - 部署时无法将 CSS 文件加载到同一文件夹中

css - 内容 div 内的页脚( Bootstrap )

javascript - 如果像 mod_security 这样的服务器防火墙阻止 jquery ajax 连接,我如何检测使用 jquery?

javascript - 使用不同的 json 数据填充不同的选择框

html - 在背景图像上创建透明的 CSS 三 Angular 形

javascript - 将原始字符串源转换为 html 以使用 jquery 选择器

javascript - jQueryMobile button() 与 HTML <button> 初始化

css - 对于这种情况,最好的 css 属性是什么