首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

js判断元素在某个区域是否可见(转)

getBoundingClientRect介绍 getBoundingClientRect获取元素位置 getBoundingClientRect用于获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置...getBoundingClientRect是DOM元素到浏览器可视范围的距离(不包含文档卷起的部分)。...该函数返回一个Object对象,该对象有6个属性:top,lef,right,bottom,width,height;这里的top、left和css中的理解很相似,width、height是元素自身的宽高...right是指元素右边界距窗口最左边的距离,bottom是指元素下边界距窗口最上面的距离。 getBoundingClientRect()最先是IE的私有属性,现在已经是一个W3C标准。...以前的办法是通过各种offset判断元素是否可见,网上很多教程,大家可以自己去查找。

7.5K20

js打乱数组元素顺序(Fisher–Yates shuffle洗牌算法)

如何将数组元素顺序打乱呢?这里小shy向大家介绍一种算法。 Fisher–Yates shuffle:洗牌算法。...通俗理解: 先将数组最后一位元素作为参考点,将这个参考点和数组其他位置的元素(使用随机数获得)交换位置(当然也有不改变其位置的情况); 然后将数组倒数第二位元素作为参考点,将这个参考点和数组其他位置的元素...(使用随机数获得)交换位置(当然也有不改变其位置的情况); 然后将数组倒数第三位元素作为参考点,将这个参考点和数组其他位置的元素(使用随机数获得)交换位置(当然也有不改变其位置的情况); 以此类推,直到参考点为数组第一位元素交换完毕之后结束...let point = len - 1; point >= 0; point--) { index = Math.floor(Math.random() * point); // 交换两个元素的值

1.5K20

HTML超过多少像素以省略号显示

时间过的很快,转眼来到了2013年,我在北京工作也一年有余,静下心来,回头想想,自己貌似一年没有成长多少,或者说成长的很少,反正自己没有看到,公司年终总结都不知道说些什么。...很多时候都有这种需求,页面上的文字显示不下,需要以省略号代替,可能有些人会想到通过控制文字的长度实现,的确,在已知的文字样式下,如果文字全是中文或者全是非中文是可以通过长度来控制的,但是我们的情况通常是中英文混合...不设置的话只在IE下好用 */ overflow: hidden; /* 超出的部分隐藏起来 */ white-space: nowrap;/* 不显示的地方用省略号...,“测试-看我有多长看我....doc”,如果文本过长的话,.doc前的文本加省略号,保留格式标志,这种CSS就无法控制了。        ...通过JavaScript计算 function test() { var info = "CSS截取字符串,超出用省略号代替"; var temp = info;

1.2K00

js 实现元素拖拽

概述 js 实现拖拽,主要使用元素的 onmousedown、onmousemove、onmouseup 三个事件实现。...1、onmousedown:鼠标按下事件 2、onmousemove:鼠标移动事件 3、onmouseup:鼠标抬起事件 实现思路 我们当左键点击时,需要记录当前的鼠标点击位置相对于该元素左上角的x,y...坐标,这里我们使用diffX和diffY来表示 然后我们移动时需要不断计算当前元素距离浏览器左边和上边的距离; 同时给元素进行赋值; 当鼠标抬起时,取消鼠标移动事件和鼠标抬起事件。...id="drag"> window.onload = function () { //获取drag元素...clientX 和 clientY 默认是以元素左上角位置来计算的,这里需要向左向上同时减去鼠标点击的位置差,从而可以保证鼠标始终显示在拖拽元素时的位置

9.6K30

表格,设置许多元素的大小时,js的速度慢的办法

1* 思路2:去js语句。  利用css,设置input的宽高为100%。     结果,每个input好像都是159的宽度,整个表格会大,且把纯文字的列挤得很窄。...思路3:必须用js的话,我先隐藏掉表或表body,然后再设置它的大小,设置完于显示表。是不是就不卡了呢?  结果:用$.hide()方法,input就无法获取大小。...因为在函数,我就把tbody给detach(),结果是所有的input都是159这么一个宽度,但各个表列还是上面那样,input全跑到表单元格之外了。  ...input.css({ width: $input.data('w') + 'px', height: $input.data('h') + 'px' });   tbl.show(); 此时1500个元素在...---------------------------------------------------------------------------------- 1*:表明absolute元素仍然会影响

1.8K20

vue自定义指令监听元素是否进入父元素视窗

需求背景一个每行3列的列表布局,列表中的每一项有一个已读/未读状态,只要展现在了用户的视窗就算已读状态了。...想到的方案:直接监听滚动高度,根据滚动距离来计算是否展现在页面借助第三方插件,找到一个 vue-check-view,不过只能监听整个 window 视窗的页面滚动,如果想监听某个元素的内部滚动是否可见没法实现刚开始直接用的...监听元素是否进入某个视口自定义指令监听元素是否进入某个视口自定义指令,可以通过 root 参数传入父视口的选择器,不传就默认是相对于浏览器window窗口。适用于元素懒加载、埋点上报、查看了修改状态。..." > 我是第 {{ index }} 个 import viewport from 'xx/viewport.js'export...default { directives: { viewport }, methods: { handleViewport(i) { console.log(`第${i}个进入视窗`

21310

原生js添加元素

今天做页面使用的mui,因为使用mui情况下无法使用jquery,于是在ajax请求完毕添加元素的时候发现自己竟然对原生js添加元素的方法有点模糊了,真是越活越倒退了,赶紧整理一波。...首先最简单的innerHTML,这个不想多说,入门新手喜欢这么用,但他的缺点也很明显:不管你渲染部分还是全部,始终需要替换原先所有的子元素,也就是需要重复渲染,会增加浏览器压力。...接下来就是正题了,js推荐是这样进行元素添加: 1.创建游离元素节点:let div=document.createElement(“div”); 2.给创建元素添加属性:div.setAttribute...className”);注意setAttribute一次只能设置一条属性 3.创建文本节点:let textNode=document.createTextNode(“需要添加的文本”); 4.将文本节点添加到元素节点中...div.appendChild(textNode); 5.加元素节点插入文档:Parent.appendChild(div); over 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

8.9K20

JS如何替换元素内容

,有的是动态的,特别是在一些网页交互的网页特效里,应用比较多,如何简单的替换元素的内容 01 原生JS实现 在原生js中主要通过DOM提供的属性去修改的,遵循js的一个使用规范,获取元素,绑定事件,操作...v-model="input" clearable> 替换元素...input-wrap { display:flex; justify-content: center; margin-bottom: 20px; } 分析 在原生js...当中,innerHTML是DOM元素对象一个非常重要的属性,可以获取元素整个节点的内容,包括标签元素,表示元素的所有内容,包括子元素,文本等 注意要与innerText区分,innerText只可以获取文本节点内容...,如果仅是修改DOM元素节点文本内容,使用innerText也是可以的 而在vue里面,并不是通过操作DOM去实现的,而是操作数据,通过操作数据实现的,与原生js的使用是有差异的

10.6K20

js如何引用同级元素

具体效果 示例效果 https://coder.itclan.cn/fontend/js/17-yinyong-tongji-elem/ 具体描述 在网页中,同级(兄弟)元素,指的是拥有相同的直接父级元素元素...,并且往往指的是同类的元素,同类元素在实际开发中遇到的比较多 比如:列表li,并列的按钮等,当需要做一些特殊的效果时,可以对其他同级的元素进行一些操作,满足特定的网页要求 比如:隔行填充颜色等 原生方法实现...以下是通过原生js实现,点击按钮时,获取按钮的值 // 获取同级按钮元素的value function getLevelBtnVal(btn) { var p = btn.parentNode...,同级元素拥有相同的父级元素都是p,那么就可以得到除自身以外的的同级元素,如果还需要排除同一类别的话,那么可以使用节点的nodeType属性来加以区别 Vue版本实现 在Vue里面,就不用类似原生js的...实现是比较简单的,但是原生js的操作依旧还是要知道的

7.8K40
领券