
jquery在scroll()事件里面,我想判断当前滚动条横向还纵向;
我开始用全局变量记录scrollTop的值来判断的,如果前后值没有变就是横向滚动了,
但是页面里有多个滚动条,就要多个全局变量来控制,该怎么判断呢?
scroll jquery 区分横向纵向滚动条
解决方法:
each一次设置选择器选中对象的scrollLeft/scrollTop就行了,然后绑定scroll事件,触发的时候获取scrollLeft/scrollTop和初始化的scrollLeft/scrollTop对比判断是横向还是纵向,同时更新对象存储的scrollLeft/scrollTop
<style>
c{height:120px;width:120px;overflow:auto;border:solid 1px black;margin-bottom:5px;}
</style>
<div class="c">111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111</div>
<div class="c">111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111</div>
<div class="c">111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111</div>
<div class="c">111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111<br>1111111111111111111</div>
<script src="/js/jqueryjs"></script>
<script>
$('div')each(function(){$(this)data('slt',{sl:thisscrollLeft,st:thisscrollTop});})scroll(function(){
var sl=thisscrollLeft,st=thisscrollTop,d=$(this)data('slt');
if(sl!=dsl)alert('横向滚动');
if(st!=dst)alert('纵向滚动');
$(this)data('slt',{sl:sl,st:st});///
})
</script>
最近流行的 sogo云输入法, QQ云输入法,都用到了bookmarklet技术。
这篇文章主要介绍了jQuery中even选择器的定义和用法,较为详细的分析了event选择器的语法结构与具体用法,并以一个设置偶数行为蓝色字体的例子总结了其用法与功能特点,需要的朋友可以参考下
晚上有插件可以实现"jquery tab",但有点复杂了,我想写个最简单的,来实现"jquery tab"。而事实上确实很简练
这篇文章主要介绍了JQuery样式 *** 作、click事件以及索引值-选项卡应用,结合实例形式分析了jQuery动态修改css样式、事件响应以及选项卡相关 *** 作技巧,需要的朋友可以参考下
jQuery在遵循W3C规范的情况下,对事件的常用属性进行了封装,使得事件处理在各大浏览器下都可以正常的运行而不需要进行浏览器类型判断
主要是为了往后的项目中方便实现这类型的功能,在之前做问卷调查那个应用中,就用到这个来显示结果,但当时开发时并不用是插件的,一大堆代码,看也烦,用起来很麻烦
jquery动态添加option选项,还有动态删除的方法,大家参考使用吧
qTip2是一个灰常强大且精致的jQuery提示信息插件,是qTip的第2版,也是一个全新的版本,提供了丰富的功能及漂亮的外观,非常易于使用
1、首先新建一个html文件,在文件内引入script标签备用:
2、然后需要把body的高度设置得很大,直接在style标签中设置body标签的样式,给它一个很大的高度:
3、然后在JS脚本中直接设置window的onscroll事件就可以获取滚动条滚动事件了,获取后这里d出一个窗口:
4、打开浏览器,此时向下滚动滚动条,就会d出窗口了。以上就是获取网页滚动条滚动事件方法的演示:
DOM对象的scrollTop用于获取或者设置一个元素里滚动的距离(垂直)。例如:documentdocumentElementscrollTop可以获取当前页面的滚动高度,也可以获取某个DOM元素的滚动距离,例如:documentquerySelector('content')scrollTop,前提是content元素存在,并且可以滚动。
另外,scrollTop还可以把滚动条移到指定位置,例如:
DOM对象的offsetTop与scrollTop完全不同,它是上边框相对于父元素上边框的距离,一般是固定的,不随滚动变化。
这两个都能返回视窗滚动过的距离,相对来说,pageYOffset兼容性更好,一般我们只用 pageYOffset就行。但两者都不兼容IE9以下,另外 scrollY 可以赋值,让视窗滚动到指定位置。pageYOffser和scrollY都与scrollTop不同,pageYOffset和scrollY都只存在window对象里。
看下面等式:
scrollTop设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
offsetTop获取对象相对于版面或由offsetTop属性指定的父坐标的计算顶端位置
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" ">
今天小编要跟大家分享的文章是关于Web前端工程师要掌握的JavaScript代码片段(一)。正在从事web前端工作的小伙伴们来和小编一起看一看吧,希望本篇文章能够对正在从事web前端工作的小伙伴们有所帮助。
1、Anagramsofstring(带有重复项)
使用递归。对于给定字符串中的每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。
constanagrams=str=>{
if(strlength[str];
returnstrsplit('')reduce((acc,letter,i)=>
accconcat(anagrams(strslice(0,i)+strslice(i+1))map(val=>
letter+val)),[]);
};
//anagrams('abc')->['abc','acb','bac','bca','cab','cba']
2、数组平均数
使用reduce()将每个值添加到累加器,初始值为0,总和除以数组长度。
constaverage=arr=>arrreduce((acc,val)=>acc+val,0)/
arrlength;
//average([1,2,3])->2
3、大写每个单词的首字母
使用replace()匹配每个单词的第一个字符,并使用toUpperCase()来将其大写。
constcapitalizeEveryWord=str=>strreplace(/\b[a-z]/g,char=>
chartoUpperCase());
//capitalizeEveryWord('helloworld!')->'HelloWorld!'
4、首字母大写
使用slice(0,1)和toUpperCase()大写第一个字母,slice(1)获取字符串的其余部分。省略lowerRest参数以保持字符串的其余部分不变,或将其设置为true以转换为小写。(注意:这和上一个示例不是同一件事情)
constcapitalize=(str,lowerRest=false)=>
strslice(0,1)toUpperCase()+(lowerReststrslice(1)toLowerCase():
strslice(1));
//capitalize('myName',true)->'Myname'
5、检查回文
将字符串转换为toLowerCase(),并使用replace()从中删除非字母的字符。然后,将其转换为tolowerCase(),将('')拆分为单独字符,reverse(),join(''),与原始的非反转字符串进行比较,然后将其转换为tolowerCase()。
constpalindrome=str=>{
consts=strtoLowerCase()replace(/[\W_]/g,'');
returns===ssplit('')reverse()join('');
}
//palindrome('tacocat')->true
6、计数数组中值的出现次数
每次遇到数组中的特定值时,使用reduce()来递增计数器。
constcountOccurrences=(arr,value)=>arrreduce((a,v)=>v===
valuea+1:a+0,0);
//countOccurrences([1,1,2,1,2,3],1)->3
7、当前URL
使用windowlocationhref来获取当前URL。
constcurrentUrl=_=>windowlocationhref;
//currentUrl()->'>
1、首先在html页面上,看到有一个按钮,要获得这个按钮离顶部的距离。
2、在按钮的事件函数里,先取这个按钮的offset数据,通过jquery的offset方法。
3、得到的结果是一个数组对象,只要获取里面的top数据就行了。
4、使用log方法,把数据输出到浏览器的控制台。
5、运行页面,看到现在的按钮位置。距离顶部估计是500px左右吧,点击一下这个按钮。
6、然后看一下控制台上的数据,得到距离为439的像素。
与窗口相关的尺寸有视口宽度clientWidth、浏览器外宽outterWidth、浏览器内宽innerHeight,视口高度clientHeight、浏览器外高outterHeight、浏览器内高innerHeight, 这几个尺寸会因浏览器的不同略有差异。
上述三项测试在Chrome、IE11、Edge、Firefox、Safari 中测试通过。
clientWidth、outterWidth、innerHeight 的值均一致,safari 的 outterWidth 和 outerHeight 均为0。而且 clientWidth、outterWidth、innerHeight 三个值均会随着浏览器地址栏和工具栏的显示或隐藏而发生变化,也就是说浏览器大小、视口是一起发生变化的。
offsetHeight:元素在垂直方向上占用的空间大小,以像素计。包括元素的高度(含padding)、(可见的)水平滚动条高度、 上边框高度和下边框高度。这个高度可以用来检测元素的可见区域。
offsetWidth: 元素在水平方向上占用的空间大小,以像素计。包括元素的宽度(含padding)、(可见的)垂直滚动条的宽度、左边框宽度和右边框宽度。这个高度可以用来检测元素的可见区域。
offsetLeft: 元素的左外边框至包含元素的左内边框之间的像素距离。
offsetTop: 元素的上外边框至包含元素的上内边框之间的像素距离。
clientWidth: 指的是元素内容及其内边距所占据的空间大小,不包含border,滚动条空间不计算在内。
注意:滚动条一般是位于border的内边缘,盖住了padding,但是不占用padding的空间。
scrollHeight: 在没有滚动条的情况下,也就是不含滚动条(滚动条是独立的存在),元素内容的总高度。
scrollWidth: 在没有滚动条的情况下,也就是不含滚动条(滚动条是独立的存在),元素内容的总宽度。
scrollLeft: 被隐藏在内容区域左侧的像素数。通过设置这个属性可以改变元素的滚动位置。
scrollTop: 被隐藏在内容区域上方的像素数。通过设置这个属性可以改变元素的滚动位置。
带有垂直滚动条的页面总高度:documentdocumentElementscrollHeight,如果想要获取文档高度,需要找到 scrollHeight 和 clientHeight 中的最大值。
参考文献:
《高级语言程序设计 第三版》
现今的 chrome 浏览器,为了实现丝滑顺畅地滑动,活动时间直接执行而不再检测默认事件,这使得无法用 epreventDafult() 来阻止默认事件。
现在需要添加 {passive: false} 配置
$(document)addEventListener( 'scroll', fun, {passive: false} ) 把事件被动监听设置为 false 之后,就可以正常阻止默认事件了。
为了手动地使页面平滑滚动到某个高度,需要使用 $animate({scrollTop: val}) 。由于不同浏览器间的差异,绑定 scrollTop 的 DOM 元素是不一样的,比如
为了解决这个差异,我们需要把 animate 同时绑定在两个节点上。 $('html, body')animate()
$()position() ———— 基于父元素,从自身的外边框为点。
$()offset() ———— 基于父元素,从自身内容为点。
$(window)height()width() ———— 获取窗口宽高。
因为使用的是监听 touchstar 和 touchend 方法,所以该方法只适用于移动端。
主要的思路就是监听“触摸开始”和“触摸结束”两个事件,分别获取事件当前的触摸点坐标和文档滚动的值,进行对比判断“触摸是否有滑动”以及“文档是否有滚动(到底)”,来执行需要的方法。下面说说几个注意点:
以上就是关于JQ 如何判断横向滚动条到最右侧全部的内容,包括:JQ 如何判断横向滚动条到最右侧、如何获取网页滚动条滚动事件、scrollTop, offsetTop, pageYOffset, scrollY 的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)