js限定内容的溢出滚动(offset,style.left)
1.
.html:
<div class="test" style="position: relative;">
<ul id="content" style="position: relative;">
<li>test111111111112222</li>
</ul>
</div> .scss:
.test{
overflow: hidden;
width: 200px;
}
ul#content{
list-style-type: none;
font-size: 0px;
white-space: nowrap;
overflow:hidden;
padding:0px;
li{
display: inline-block;
vertical-align: top;
font-size: 13px;
}
} .js:
<script>
$(function() {
var width = window.innerWidth - ;
var content = $('#content').html(); //原内容<li>test111111112222222222</li>
var content_width = $('#content li').width(); //原宽度 $('#content').html(content + content);
var w = $('#content li').length * $('#content li').eq().width(); //w 总长度
$('#content').css('width', w);
var timer;
var el = $('#content')[]; function toRight() {
window.clearInterval(timer);
var timer = window.setInterval(function () {
var offset = el.offsetLeft+; //偏移值 每次相对当前位置偏移10px
if(offset > ){ //第一次进来执行一次,以后为-xx 不再执行
//每次 +10 递增 -160,-150,-140,...,0,10 一旦>0,重置为-165
offset = -el.offsetWidth/;
}
el.style.left = offset+'px';
},)
} function toLeft() {
window.clearInterval(timer);
var timer = window.setInterval(function () {
var offset = el.offsetLeft - ;
if(offset<= -el.offsetWidth/){ // 同理 当向左偏移到一半的时候重置回来
offset = ;
}
el.style.left = offset+'px';
},)
} //如果容器的宽度够显示内容不进行滚动,不够则进行滚动显示
if($('.test').width() > content_width){
$('#content').html(content);
}
else{
toLeft();
}
});
</script>
2.写了后觉得可以优化下
// js部分:
$(function() {
var width = window.innerWidth - ;
var content_width = $('#content li').width();
$('.test').width(width);
if(width < content_width){ //如果内容长度大于显示长度
var timer;
var el = $('#content')[];
var offset = ; //内容的初始位置
var content = $('#content').html();
$('#content').append(content); // 将原内容复制为两条,目的:当向左偏移时,内容前部分消失,在内容的尾部后可以看到内容消失的头部
function toLeft(){
window.clearInterval(timer);
timer = window.setInterval(function () {
offset = el.offsetLeft - ; //每次偏移的量
if(offset < -content_width-){ //如果滚动到底了,重置回来
offset = ;
}
el.style.left = offset+'px'; //执行偏移
},); // 每100毫秒移动一遍
}
toLeft();
console.log(content_width);
}
}); //css:
ul#content{
list-style-type: none;
font-size: 0px;
white-space: nowrap;
padding:0px;
li{
display: inline-block;
vertical-align: top;
font-size: 13px;
padding-left: 20px;
}
}
js限定内容的溢出滚动(offset,style.left)的更多相关文章
- ScrollFix.js:一个 iOS5 溢出滚动的(有限)修复方案
Update: Unfortunately this does not 100% solve the problem, the script falls down when handling touc ...
- js和jquery实现页面滚动监听
js和jquery实现页面滚动监听 一.总结 一句话总结:onscroll方法和监听页面元素的高度都可以实现滚动监听. 1.onscroll方法实现滚动监听的核心代码是什么? <body ons ...
- js函数——倒计时模块+无缝滚动
倒计时 效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- js原生 + jQuery实现页面滚动字幕
js原生/jQuery实现页面滚动字幕效果 17:45:49 在新闻列表或者文章列表信息等页面中很容易要求实现字幕滚动的效果,以下为简单的实现页面中滚动字幕的效果 1.jQuery实现页面滚动字幕效果 ...
- 页面滚动显示或隐藏元素Headroom.js插件帮助你实现滚动效果
Headroom.js 是什么? Headroom.js 是一个轻量级.高性能的JS小工具(不依赖任何工具库!),它能在页面滚动时做出响应.此页面顶部的导航条就是一个鲜活的案例,当页面向下滚动时,导航 ...
- js 鼠标左键拖动滚动
鼠标左键拖动滚动 原作者: http://blog.csdn.net/lisatisfy/article/details/6606026 本文在源代码的基础上 增加支持水平滚动 的功能 html &l ...
- Headroom.js – 快速响应用户的页面滚动操作
Headroom.js 是一个轻量级,高性能的JS插件(无依赖性!),允许你响应用户的滚动行为.Headroom.js 使您能够在适当的时候把元素融入视图,而其它时候让内容成为焦点.Headroom. ...
- js实现车轮的来回滚动
最近喜欢用js做车轮的来回滚动,简单的js动画分享给大家.有什么建议记得说出来大家一起讨论哦!效果图如下: 源代码: <style> #pic1{ width:20px; height:2 ...
- JS基础内容小结(DOM&&BOM)(二)
元素.childNodes:只读 属性 子节点列表集合 元素.nodeType:只读 属性 当前元素下的节点类型 元素.attributes : 只读 属性 属性列表集合 元素.children: 只 ...
随机推荐
- 【jQeury】input输入框状态,input事件,blur事件,focus事件
//输入框正在输入时 $("#test1").on('input',function(){ alert('正在输入'); }) //输入框得到焦点时 $("#test2& ...
- python中的集合内置方法小结
#!/usr/local/bin/python3 # -*- coding:utf-8 -*- #集合性质:需要传入一个list,且不含重复的元素,无序 list_1=[1,2,1,4,5,8,3,4 ...
- POJ 3977 折半枚举
链接: http://poj.org/problem?id=3977 题意: 给你n个数,n最大35,让你从中选几个数,不能选0个,使它们和的绝对值最小,如果有一样的,取个数最小的 思路: 子集个数共 ...
- Pandas 文本数据
Pandas针对字符串配备的一套方法,使其易于对数组的每个元素(字符串)进行操作. 1.通过str访问,且自动排除丢失/ NA值 # 通过str访问,且自动排除丢失/ NA值 s = pd.Serie ...
- Lighting System Design UVA - 11400 动态规划
题目:题目链接 思路:简单的动态规划问题,先把灯泡按照电压从小到大排序.设s[i]为前i种灯泡的总数量(即L值之和),d[i]为灯 泡1-i的最小开销,则d[i] = min{d[j] + (s[i] ...
- Poweroj:2425-跳台阶(经典递推)
题目链接:https://www.oj.swust.edu.cn/problem/show/2425 跳台阶 Edit Manage Data Rejudge Time Limit: 1000 MS ...
- [Bzoj2246]迷宫探险(概率+DP)
Description 题目链接 Solution 用三进制表示陷阱状态,1表示有害,2表示无害,0表示不知道 用\(f[S][i]\)表示状态为S时陷阱i有害的概率,这个可以预处理出 \(d[S][ ...
- Oozie是什么
Apache Oozie Workflow Scheduler for Hadoop Oozie is a workflow scheduler system to manage Apache Had ...
- Oozie wordcount实战
一.定义 基本概念 Action: An execution/computation task (Map-Reduce job, Pig job, a shell command). It can a ...
- Active Directory 域服务 (AD DS) 虚拟化
TechNet 库 Windows Server Windows Server 2012 R2 和 Windows Server 2012 服务器角色和技术 Active Directory Acti ...