写了一个点击无缝滚动的demo,但是点击的时候如果上一个不运动完成,在快速点击就会快闪。

可是开始也清除定时器了,后来发现是传入的jq对象,jqobj.timer=定时器,这里jqobj没法添加.timer,所以每次清空也是徒劳,根本就没有添加上这个对象的属性。

用document,getElementById(‘obj’)获取的原生dom对象,就是可以添加上.timer属性,所以清除定时器也是成功的。

重点是最后

//            ******************
// document.getElementById('ul22')这里必须用原生dom对象,不能用jq对象
// ******************
rtjr.ui.move(document.getElementById('ul22'),-icont*liwidth,-(icont-1)*liwidth);
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
*{margin: 0;padding: 0;}
li{list-style: none;}
.box{width: 1200px;margin: 100px auto;} .gundong{width: 660px;border: 1px solid ;padding: 10px 80px 0px;position: relative;}
.span3{position: absolute;top: 50%;left: 0;width: 80px;height: 40px;background: #ccc;line-height: 40px;text-align: center;margin-top: -20px;}
.span4{position: absolute;top: 50%;right: 0;width: 80px;height: 40px;background: #ccc;line-height: 40px;text-align: center;margin-top: -20px;}
.gunul_wrap{width: 660px;overflow-x: hidden;position: relative;height: 125px;}
.gunul{width: 660px;margin: 0 auto;position: absolute;left: 0;top: 0;}
.gunul:after{display: block;content: "";clear: both;}
.gunul li{float: left;margin:0px 10px;}
.gundong img{width: 200px;}
.gundong a{text-decoration: none;color: #333;}
.gundong p{width: 200px;line-height: 40px;text-align: center;}
</style>
<script type="text/javascript" src="js/jquery-1.10.2_d88366fd.js" ></script>
</head>
<body>
<div class="box"> <!--无缝滚动-->
<div class="gundong">
<span class="span3">next</span>
<span class="span4">pre</span>
<div class="gunul_wrap">
<ul class="gunul" id="ul22">
<li>
<a href=""><img src="data:images/gjlb2.jpg" alt="" /><p>1</p></a>
</li>
<li>
<a href=""><img src="data:images/gjlb3.jpg" alt="" /><p>2</p></a>
</li>
<li>
<a href=""><img src="data:images/gjlb5.jpg" alt="" /><p>3</p></a>
</li>
</ul>
</div>
</div> </div>
</body>
</html>
<script> $(function(){
rtjr.app.wufeng();
}); var rtjr={}; rtjr.tools={};
rtjr.ui={};
rtjr.app={};
// 无缝滚动
rtjr.tools.getul=function(obj){
var cont=obj.html();
cont+=cont;
obj.html(cont);
var objwidth=$(obj.find('li')[0]).outerWidth(true)*obj.find('li').length;
obj.css({'width':objwidth})
};
rtjr.ui.move=function(obj,old,newd){
console.log(obj.timer);
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var ispeed=(newd-old)/10;
ispeed=ispeed>0?Math.ceil(ispeed):Math.floor(ispeed);
if(newd==old){
clearInterval(obj.timer);
}else{
old+=ispeed;
$(obj).css({'left':old});
}
},30);
}; rtjr.app.wufeng=function(){
var icont=0;
rtjr.tools.getul($('.gunul'));
var liwidth=$($('.gunul li')[0]).outerWidth(true); $('.span3').bind('click',function(){
if(icont==($('.gunul li').length)/2){
icont=0;
$('.gunul').css('left',0);
};
rtjr.ui.move(document.getElementById('ul22'),-icont*liwidth,-(icont+1)*liwidth);
icont++;
}); $('.span4').bind('click',function(){
if(icont==0){
icont=$('.gunul li').length/2;
$('.gunul').css('left',-$('.gunul').outerWidth()/2);
};
// ******************
// document.getElementById('ul22')这里必须用原生dom对象,不能用jq对象
// ******************
rtjr.ui.move(document.getElementById('ul22'),-icont*liwidth,-(icont-1)*liwidth);
icont--;
});
};
</script>

jquery对象和dom原生获取的对象是不同的。的更多相关文章

  1. 什么是jquery $ jQuery对象和DOM对象 和一些选择器

    1什么是jQuery: jQuery就是将一些方法封装在一个js文件中.就是个js库 我们学习这些方法. 2为什么要学习jQuery: 原生js有以下问题: 1.兼容性问题2.代码重复3.DOM提供的 ...

  2. jQuery对象与DOM对象

    jQuery对象与DOM对象是不一样的 可能一时半会分不清楚哪些是jQuery对象,哪些是DOM对象,下面重点介绍一下jQuery对象,以及两者相互间的转换. 通过一个简单的例子,简单区分下jQuer ...

  3. jquery对象和DOM对象的区别和转换

    jquery对象和DOM对象的区别和转换 在使用jquery时,我们直接通过jq的选择器获取元素,然后对元素进行操作,用jq选择器获取到的对象是一个jq对象,jq对象能够使用jq提供的方法,但是不能用 ...

  4. jQuery对象和DOM对象的区别

    jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery ...

  5. jQuery对象与dom对象相互转换

    核心提示:jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类型,一般情况下,如S('#id' ...

  6. JQuery对象与DOM对象的区别与转换

      1.jQuery对象和DOM对象的区别 DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象; eg: var domObj ...

  7. jQuery对象与DOM对象之间的转换方法

    刚开始学习jquery,可能一时会分不清楚哪些是jQuery对象,哪些是DOM对象.至于DOM对象不多解释,我们接触的太多了,下面重点介绍一下jQuery,以及两者相互间的转换. 什么是jQuery对 ...

  8. jQuery对象与dom对象的转换

    一直以来对于通过jQuery方式获取的对象使不能直接使用JavaScript的一些方法的,开始的时候不理解,现在此案知道,原来jQuery获得的对象并不和我们平时使用getElementById获得的 ...

  9. jquery对象和dom对象的相互转换

    更好的学习jquery,要区分好jquery对象和dom对象的区别. 先具体说说dom.举个例子 <html> <head></head> <body> ...

随机推荐

  1. 一周搞定模拟电路P3_电容_记录

    1 电容的介绍 什么是电容 它有两个电极板,和中间板所夹的介质封装而成,具有特定功能的电子器件. 电容的作用 旁路.去耦.滤波和储能的作用 2 旁路电容的作用 1)使输入电压均匀化,减少噪声对后级的影 ...

  2. BZOJ 3262: 陌上花开 (cdq分治,三维偏序)

    #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; c ...

  3. TensorFlow:使用inception-v3实现各种图像识别

    程序来自博客: # https://www.cnblogs.com/felixwang2/p/9190740.html上面这个博客是一些列的,所以可以从前往后逐一练习. # https://www.c ...

  4. ztree-可拖拽可编辑的树

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - addNodes / editName / rem ...

  5. 神奇的requestAnimationFrame解决传统定时器bug

    可能你还没见过这个东西是个啥,其实他就是类似于setTimeout和setInterval,然而它与setTimeout和setInterval又有所不同,requestAnimationFrame不 ...

  6. Vue项目中sass语法该怎么用?

    最近开始着手Vue框架,被各种报错蹂躏,其中有一个就是sass语法,<style>标签中添加<style lang="scss">,发现报错,在网上找了一些 ...

  7. Shiro入门学习与实战(一)

    一.概述 1.Shiro是什么? Apache Shiro是java 的一个安全框架,主要提供:认证.授权.加密.会话管理.与Web集成.缓存等功能,其不依赖于Spring即可使用: Spring S ...

  8. 使用session在jsp页面之间传递多维数组,用于实现全局变量的效果

    使用session在jsp页面之间传递多维数组:发送数据的jsp页面:int [][] form_number=new int[4][4]; session.setAttribute("se ...

  9. enviroment linux jdk and git and maven

    #java_home export JAVA_HOME=/usr/local/java/jdk1.8.0_211 export JRE_HOME=$JAVA_HOME/jre export CLASS ...

  10. Python:数值类型

    数值类型的组成 数值类型可以直接使用的有:整数.浮点数.复数 Python3的整型,可以自动调整大小,当做long使用 整数 int 整数的进制表示 表示形式: 二进制:0b... 八进制:0o... ...