写了一个点击无缝滚动的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. 请描述一下 cookies,sessionStorage 和 localStorage 的区别

    原文:http://blog.csdn.net/lxcao/article/details/52809939 相同点:都存储在客户端不同点: 1.存储大小 cookie数据大小不能超过4k. sess ...

  2. 如何使用git和github

    转载:https://www.cnblogs.com/cxscode/p/8325064.html 如何用git将项目代码上传到github 先上常用语句 git add . git commit - ...

  3. 使用php-vmstat遇到的麻烦

    workerman-vmstat是一个基于workerman的扩展,用于监听服务器应用对内存.cpu消耗的友好的查看功能,具体介绍可以去git上看:    https://github.com/wal ...

  4. js 判断对象的属性是否存在

    1.in运算符  (属性名 in 对象) 情况1:对象自身属性 var obj={a:1}; "a" in obj//true 情况2:对象继承的属性 var objA={a:1} ...

  5. Windows 10下一步一步创建 Scrapy框架的项目

    此文是本人的学习笔记,网上搜索了很多资料,也走了一些弯路,记录下安装的过程,以便日后回顾 1.安装Anaconda3,安装时默认选项 2.装完Anaconda3后,打开系统变量在path路径下增加An ...

  6. 消息队列(四)--- RocketMQ-消息发送2

    概述   接着我们上一篇继续分析消息发送,上节讲到消息发送前有可能遇到 broker 失效的情况,RocketMQ 主要是采用两种策略 : 重试发送 broker 故障延迟机制   后者指的是当发送给 ...

  7. 【C语言】计算N名同学的某门功课的平均成绩

    分析: 循环输入number只童鞋的成绩,累加为sum,最后输出sum/number即可! 代码: #include<stdio.h> int main() { , score;//sco ...

  8. app内嵌 h5页面 再滑动的时候 触发击穿底下的一些touchstart事件

    我们的目的是再滑动的时候 不要触发到touchstart事件. // 再滑动的时候无法点开视频 var is_scroll_start,is_scroll_end; $(window).on({ 't ...

  9. 正确的上网姿势:ubuntu18.04使用clash

    本文为本人将CFW(Clash For Windows)上的配置文件应用到ubuntu上面的操作备忘,仅供个人使用 首先下载已经打包的clash压缩包:https://github.com/Dream ...

  10. 棍子Sticks(poj_1011)[经典搜索]

    [题意描述] George用相同的长度棍子,将他们随机切成最多64个单位的长度,现在,他想回到原来的状态,但他忘了他原来的多少根,以及他们原本是多长.请帮助他和设计一个程序,计算最小的可能的原始长度. ...