前端开发中常用到的js特效有哪些

JavaScript014

前端开发中常用到的js特效有哪些,第1张

HTML5 DOM 选择器

// querySelector() 返回匹配到的第一个元素var item = document.querySelector('.item')console.log(item)// querySelectorAll() 返回匹配到的所有元素,是一个nodeList集合var items = document.querySelectorAll('.item')console.log(items[0])1234567

阻止默认行为

// 原生jsdocument.getElementById('btn').addEventListener('click', function (event) {event = event || window.event;if (event.preventDefault){// w3c方法 阻止默认行为

event.preventDefault()

} else{// ie 阻止默认行为

event.returnValue = false

}

}, false)// jQuery$('#btn').on('click', function (event) {event.preventDefault()

})1234567891011121314151617

阻止冒泡

// 原生jsdocument.getElementById('btn').addEventListener('click', function (event) {event = event || window.event;if (event.stopPropagation){// w3c方法 阻止冒泡

event.stopPropagation()

} else{// ie 阻止冒泡

event.cancelBubble = true

}

}, false)// jQuery$('#btn').on('click', function (event) {event.stopPropagation()

})1234567891011121314151617

鼠标滚轮事件

$('#content').on("mousewheel DOMMouseScroll", function (event) {

// chrome &ie || // firefox

var delta = (event.originalEvent.wheelDelta &&(event.originalEvent.wheelDelta >0 ? 1 : -1)) || (event.originalEvent.detail &&(event.originalEvent.detail >0 ? -1 : 1))

if (delta >0) {

// 向上滚动

console.log('mousewheel top')

} else if (delta <0) {// 向下滚动

console.log('mousewheel bottom')

}

})123456789101112

检测浏览器是否支持svg

function isSupportSVG() {

var SVG_NS = 'http://www.w3.org/2000/svg' return !!document.createElementNS &&!!document.createElementNS(SVG_NS, 'svg').createSVGRect

}

// 测试console.log(isSupportSVG())1234567

检测浏览器是否支持canvas

function isSupportCanvas() {

if(document.createElement('canvas').getContext){return true

}else{return false

}

}// 测试,打开谷歌浏览器控制台查看结果console.log(isSupportCanvas())12345678910

检测是否是微信浏览器

function isWeiXinClient() {

var ua = navigator.userAgent.toLowerCase()

if (ua.match(/MicroMessenger/i)=="micromessenger") {

return true

} else {

return false

}

}// 测试alert(isWeiXinClient())1234567891011

jQuery 获取鼠标在图片上的坐标

$('#myImage').click(function(event){

//获取鼠标在图片上的坐标

console.log('X:' + event.offsetX+'\n Y:' + event.offsetY)

//获取元素相对于页面的坐标

console.log('X:'+$(this).offset().left+'\n Y:'+$(this).offset().top)

})1234567

验证码倒计时代码

<!-- dom --><input id="send" type="button" value="发送验证码">12

// 原生js版本var times = 60, // 临时设为60秒

timer = null

document.getElementById('send').onclick = function () {

// 计时开始

timer = setInterval(function () {

times-- if (times <= 0) {

send.value = '发送验证码'

clearInterval(timer)

send.disabled = false

times = 60

} else {

send.value = times + '秒后重试'

send.disabled = true

}

}, 1000)

}1234567891011121314151617181920

// jQuery版本var times = 60,

timer = null

$('#send').on('click', function () {

var $this = $(this) // 计时开始

timer = setInterval(function () {

times-- if (times <= 0) {

$this.val('发送验证码')

clearInterval(timer)

$this.attr('disabled', false)

times = 60

} else {

$this.val(times + '秒后重试')

$this.attr('disabled', true)

}

}, 1000)

})12345678910111213141516171819202122

常用的一些正则表达式

//匹配字母、数字、中文字符

/^([A-Za-z0-9]|[\u4e00-\u9fa5])*$/

//验证邮箱

/^\w+@([0-9a-zA-Z]+[.])+[a-z]{2,4}$/

//验证手机号

/^1[3|5|8|7]\d{9}$/

//验证URL

/^http:\/\/.+\./

//验证身份证号码

/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/

//匹配中文字符的正则表达式

/[\u4e00-\u9fa5]/

//匹配双字节字符(包括汉字在内)

/[^\x00-\xff]/1234567891011121314151617181920

js时间戳、毫秒格式化

function formatDate(now) {

var y = now.getFullYear() var m = now.getMonth() + 1// 注意js里的月要加1

var d = now.getDate() var h = now.getHours()

var m = now.getMinutes()

var s = now.getSeconds() return y + "-" + m + "-" + d + " " + h + ":" + m + ":" + s

}

var nowDate = new Date(2016, 5, 13, 19, 18, 30, 20)

console.log(nowDate.getTime())// 获得当前毫秒数: 1465816710020console.log(formatDate(nowDate))123456789101112131415

js限定字符数(注意:一个汉字算2个字符)

<input id="txt" type="text">//字符串截取function getByteVal(val, max) {

var returnValue = '' var byteValLen = 0 for (var i = 0i <val.lengthi++) {if (val[i].match(/[^\x00-\xff]/ig) != null) byteValLen += 2else byteValLen += 1 if (byteValLen >max) break

returnValue += val[i]

}return returnValue

}

$('#txt').on('keyup', function () {

var val = this.value if (val.replace(/[^\x00-\xff]/g, "**").length >14) {this.value = getByteVal(val, 14)

}

})12345678910111213141516171819

js判断是否移动端及浏览器内核

var browser = {

versions: function() {

var u = navigator.userAgent

return {

trident: u.indexOf('Trident') >-1, //IE内核

presto: u.indexOf('Presto') >-1, //opera内核

webKit: u.indexOf('AppleWebKit') >-1, //苹果、谷歌内核

gecko: u.indexOf('Firefox') >-1, //火狐内核Gecko

mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端

ios: !!u.match(/\(i[^]+( U)? CPU.+Mac OS X/), //ios

android: u.indexOf('Android') >-1 || u.indexOf('Linux') >-1, //android

iPhone: u.indexOf('iPhone') >-1 , //iPhone

iPad: u.indexOf('iPad') >-1, //iPad

webApp: u.indexOf('Safari') >-1 //Safari

}

}

}

if (browser.versions.mobile() || browser.versions.ios() || browser.versions.android() || browser.versions.iPhone() || browser.versions.iPad()) {

alert('移动端')

}123456789101112131415161718192021

之前我用过一个检测客户端的库 觉得挺好用的,也推荐给大家 叫 device.js,大家可以 Googel 或 百度

GItHub仓库地址:https://github.com/matthewhudson/device.js

getBoundingClientRect() 获取元素位置

//它返回一个对象,其中包含了left、right、top、bottom四个属性var myDiv = document.getElementById('myDiv')var x = myDiv.getBoundingClientRect().left

var y = myDiv.getBoundingClientRect().top

// 相当于jquery的: $(this).offset().left、$(this).offset().top // js的:this.offsetLeft、this.offsetTop123456

HTML5全屏

function fullscreen(element) {

if (element.requestFullscreen) {

element.requestFullscreen()

} else if (element.mozRequestFullScreen) {

element.mozRequestFullScreen()

} else if (element.webkitRequestFullscreen) {

element.webkitRequestFullscreen()

} else if (element.msRequestFullscreen) {

element.msRequestFullscreen()

}}

fullscreen(document.documentElement)12345678910111213

最近在做一个移动端的项目,项目出现的一大堆兼容问题是在让我头疼,其中就包括获取 当前使用的 ios 的 机型。逛了很多圈博客,很多是用了组件实现的,也不知道是我方法没用对还是怎么回事,我用的组件只能获取到安卓手机的机型,最后只能采用比较笨的方法了,根据苹果手机的像素比和分辨率进行区分,代码如下:

/*

设备的像素比和设备分辨率表如下:

iPhone 3GS 3.5寸 =>320x480 =>1

iPhone 4/4s 3.5寸 =>320x480 =>2

iPhone 5/5s/5c 4.0寸 => 320x568 =>2

iPhone 6 4.7寸 =>375x667 =>2

iPhone 6Plus 5.5寸 =>414x736 =>3

iPhone 6s 4.7寸 =>375x667 =>2

iPhone 6sPlus 5.5寸 =>414x736 =>3

iPhone 7 4.7寸 =>375x667 =>2

iPhone 7Plus 5.5寸 =>414x736 =>3

iPhone 8 4.7寸 =>375x667 =>2

iPhone 8Plus5 5.5寸 =>414x736 =>3

iPhone X 5.8寸 =>375x812 =>3

iPhone XS 5.8寸 =>375x812 =>3

iPhone XS Max6.5寸 =>414x896 =>3

iPhone XR 6.1寸 =>414x896 =>2

*/

let iPhone4_4s = window.devicePixelRatio &&window.devicePixelRatio === 2 &&window.screen.width === 320 &&window.screen.height === 480

let iPhone5_5s_5c = window.devicePixelRatio &&window.devicePixelRatio === 2 &&window.screen.width === 320 &&window.screen.height === 568

let iPhone6_6s_7_8 = window.devicePixelRatio &&window.devicePixelRatio === 2 &&window.screen.width === 375 &&window.screen.height === 667

let iPhone6P_6sP_7P_8P = window.devicePixelRatio &&window.devicePixelRatio === 3 &&window.screen.width === 414 &&window.screen.height === 736

接下来的机型大家可以根据上面的注释写下去,这里我只判断到了iphone8

打开CSDN,阅读体验更佳

iphone 屏幕大小及计算_杨宗卫的爸爸的博客_苹果屏幕...

从分辨率的角度来看,iPhone6沿用二倍图(@2x),但需为iPhone6+提供更高的三倍图(@3x)从屏幕尺寸角度来看,需要重新对UI元素尺寸和布局进行适配,以期视觉协调。 (1)按宽度适配 我们先来看一下iPhone4~6(+)的屏幕高宽比: iPhone4(...

js判断ipad还是安卓_JS判断客户端是否是iOS或者Android或者ipad(二...

判断方法:粗略判断只检索 "iphone"和"safari/"字符串,严格判断则要同时包含 "mozilla/","iphone","mobile/","safari/"四个字符串 iPhone版Opera Mobile: 特征表现: 以"opera/"开头,含有"iphone"字符串,同时含有 "opera mini/","...

JavaScript 判断iPhone X Series机型的方法

写在前面 如果有更优雅的方式,一定要告诉我! 现状 iPhone X 底部是需要预留 34px 的安全距离,需要在代码中进行兼容。 现状对于 iPhone X 的判断基本是这样的: // h5 export const isIphonex = () =>/iphone/gi.test(navigator.userAgent) &&window.screen &&(window.screen.height === 812 &&window.screen.width === 375)这在之前是没问题的,新的 iPhone X Series 设备发布之后,这个就会兼容就有问

swift 含iPhone14系列 具体机型判断(最新最全)

public extension UIDevice { var modelName: String { var systemInfo = utsname() uname(&systemInfo) let machineMirror = Mirror(reflecting: systemInfo.machine) let identifier = machineMirror.children.reduce("") { .

继续访问

H5页面适配所有iPhone和安卓机型的六个技巧_曲小强的博客

img标签的高清化,可以通过JS判断devicePixelRatio的值来加载不同尺寸的图片,但是对于背景图,写在CSS中的,用JS来判断就略麻烦了,还好CSS通过media query也能判断dpr。 目前兼容性最好的背景图高清化实现方式,使用media query的-webkit-mi...

如何获取当前设备的机型(更新到iPhoneX)?判断机型是否为iPhone X?

判断机型是否为iPhone X,首先想到的是判断当前设备的机型,另外也可以从他的固有尺寸去判断: #define KIsiPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UI...

最新发布 JS判断是否是ioS或者Android

JS判断是否是ioS或者Android

继续访问

js判断苹果ios各类机型

首先需要得到设备像素比/设备分辨率(根据下面设备表去判断) /* iPhone 3GS3.5吋320x480@1x320x480 iPhone 4/4s3.5吋320x480@2x640x960 iPhone 5/5s/5c4.0吋320x568@2x640x1136 iPhone 64.7吋375x667@2x750x1334 iPhone 6Plus5.5吋414x736@3x1242x2208 iPhone 6s4.7吋375x667@2x750x1334 iPhone 6sPlus5.5吋414x7

继续访问

移动开发屏幕适配分析_weixin_34205076的博客

iPhone 3GS(非Retina屏幕)iPhone 4(Retina屏幕) 右边的图片明显要比左边的清晰,这是因为PPI要高,何为PPI。 1)PPI与DPI PPI和DPI这两个是密度单位,不是度量单位。 1. PPI(pixels per inch):图像分辨率 (在图像中,每英寸所包含的...

100个原生的JavaScript实用功能代码片段_唐策的博客

40、原生JavaScript获取移动设备屏幕宽度 41、原生JavaScript完美判断是否为网址 42、原生JavaScript根据样式名称检索元素对象 43、原生JavaScript判断是否以某个字符串开头 44、原生JavaScript判断是否以某个字符串结束 ...

iPhone12机型判断

iPhone12机型判断 case "iPhone13,1" : return "iPhone 12 mini"case "iPhone13,2" : return "iPhone 12"case "iPhone13,3" : return "iPhone 12 Pro"case "iPhone13,4" : return "iPhone 12 Pro Max"

继续访问

iphonex系列机型判断

iphonex xs xr xsmax 判断 // iphonex xs xr xsmax 判断 export function isIphonX() { // iPhone X、iPhone XS var isIPhoneX = /iphone/gi.test(window.navigator.userAgent) &&window.devicePixelRat...

继续访问

iPhone~iPhone14屏幕尺寸和分辨率的相关知识 ( DPI vs PPI pt vs px...

iPhone 4和iPhone 3GS的屏幕尺寸实际上是一样的,都是3.5英寸。在屏幕上同样一个点,实际尺寸大小一样,只是在iPhone 4上单位英寸内的像素点更多,看起来更加细腻。 4. iPhone 6/6s Plus分辨率是1242 x 2208,为什么渲染后分辨率变为1080...

纯JS判断iPhone准确机型,iPhone6~iPhoneXs Max

工作中所用到的对于iPhone各类机型的准确识别, 亲测可用,现在分享一下: //iPhone 6/6s/7/8 let isIPhone6 = /iphone/gi.test(window.navigator.userAgent) &&window.devicePixelRatio &&window.devicePixelRatio === 3 &&wind...

继续访问

js判断手机是否是苹果

前端开发会遇到判断设备类型是否是苹果端,记录一下js代码

继续访问

判断iPhone型号

#import <sys/utsname.h>#pragma mark -- 判断手机型号 -(NSString*)judgeIphoneType { struct utsname systemInfouname(&systemInfo)NSString * phoneType = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIString.

继续访问

移动端:js如何判断当前的手机系统是安卓还是iOS

废话不多说,直接上代码: // 判断当前系统是ios还是安卓 let u = navigator.userAgentlet isAndroid = u.indexOf("Android") >-1 || u.indexOf("Adr") >-1//android终端 let isIOS = !!u.match(/\(i[^]+( U)? CPU.+Mac OS X/)//ios终端 if (isAndroid) { console.log('安卓手机') } i..

继续访问

Javascript 识别iPhone、Android移动手机

通过userAgent简单识别访问设备类别

继续访问

html获取手机型号,前端通过js获取手机型号

###前段通过js获取手机型号需求:用户登录后记录当前的手机型号并记录插件:使用步骤:获取UA信息->根据安卓和IOS不同的处理IOS再通过插件mobile-device-js去获取型号安卓通过解析UA信息去获取build之前的信息得到手机型号//引入插件//获取userAgent信息var user_agent = navigator.userAgentconsole.log(user_...

继续访问

原生js判断iPhoneX系列手机型号

#原生js判断iPhoneX系列手机型号 static isIphone() { return /iphone/gi.test(window.navigator.userAgent) } static isIphonXSeries() { if (window !== 'undefined' &&window &&!this.isIphone()) return falseconst xSeriesConfig = [ {

继续访问

ios在判断设备是ipad_使用JS判断设备终端是iPhone、iPad或者电脑(PC)

今天在做一个轮播广告的项目,轮播广告上有两个特效:第一就是鼠标经过图片变亮,再就是点击图会切换成文字描述的层且覆盖图片。通常这样的效果在PC端没什么问题的,但是到IPAD上面就会需要点击两下才能切换,所以我想了想,有没有办法让ipad上只执行点击的JS代码,而不执行滑动的代码,于是就想到了“用JS判断终端设备”来解决这个问题,下面就分享下方法:iPad 使用的是 Safari Mobile 浏览器...

继续访问

JS判断是苹果系统(ios)还是安卓系统(Android)或者PC端

前言 今天看到一道面试题,JS判断是否是苹果系统(ios)和安卓系统(Android)客户端,一下就涉及到自己的知识盲区,赶紧亡羊补牢一下。顺便在拓展一下是pc还是移动端?pc端的话,又是在什么浏览器运行? JS判断是否是苹果系统(ios)和安卓系统(Android)客户端? <--!通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端。代码如下--><script type="text/javascript">var u = na

继续访问

js判断手机机型

function judgeBrand(sUserAgent) { var isIphone = sUserAgent.match(/iphone/i) == "iphone"var isHuawei = sUserAgent.match(/huawei/i) == "huawei"var isHonor = sUserAgent.match(/honor/i) == "honor"var isOppo = sUserAgent.matc.

继续访问

iOS Swift 判断手机机型 已更新 至iPhone12

/// 扩展UIDevice extension UIDevice { /// 获取设备具体详细的型号 var modelName: String { var systemInfo = utsname() uname(&systemInfo) let machineMirror = Mirror(reflecting: systemInfo.machine) let ide.

继续访问

移动端判断是android还是ios

多端开发

继续访问

热门推荐 史上最简单,js并获取手机型号

js获取手机型号

继续访问

js 根据屏幕尺寸判断是否为iphone14

前端

javascript

写评