@pspgbhu
2017-01-03T04:54:54.000000Z
字数 11092
阅读 978
未分类
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td,a,i{ margin:0; padding:0; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box;}
body {background-color: #fff;
color: #000;
font: 400 14px/1.5 "微软雅黑","Hiragino Sans GB","WenQuanYi Micro Hei",tahoma,sans-serif;}
h1, h2, h3, h4, h5, h6 { font-weight:normal; font-size:100%; }
address, caption, cite, code, dfn, em, strong, th, var, i { font-style:normal; font-weight:normal;}
a {color:#000; text-decoration:none; display: block;}
img { border:none; }
ol,ul,li { list-style:none; }
input, textarea, select, button { font:14px Verdana,Helvetica,Arial,sans-serif; }
button{border: none;outline: none;}
table { border-collapse:collapse; }
input,button,textarea,a{-webkit-tap-highlight-color: rgba(255,255,255,0);}
/* css common */
.clearfix:after, .clearfix:before {content: ""; display: block; height:0; clear:both; visibility: hidden;}
.clearfix { *zoom:1; }
.pull-left{float: left;}
.pull-right{float: right;}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td,a{ margin:0; padding:0; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box;}
a {color:#000; text-decoration:none; display: block;}
img { border:none; }
ol,ul,li { list-style:none; }
.clearfix:after, .clearfix:before {content: ""; display: block; height:0; clear:both; visibility: hidden;}
.clearfix { *zoom:1; }
.pull-left{float: left;}
.pull-right{float: right;}
//强制webket内核渲染
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
//视口
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
//格式探索
<meta name="format-detection" content="telephone=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="format-detection" content="telephone=no">
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
如果你的网站不想被剥去外衣、往赤裸的身体上贴广告,就加上下面的代码。
<meta http-equiv="Cache-Control" content="no-siteapp" />
文字超出了需要隐藏并显示省略号这个在工作中很多时候都要用到,我想很多人都碰到过吧,这个有两种解决方法
一是用程序开截取字符长度,这个其实也是可以的
第二种是用样式来做,这里主要介绍一下用样式怎么来做吧,我话也不多说了吧直接上代码吧,
css样式如下:
.css1{
color:#6699ff;border:1px #ff8000 dashed;
margin-bottom:20px;
width: 20em;/*不允许出现半汉字截断*/
}
/*****单行文本*****/
.css2 {
overflow: hidden; /*自动隐藏文字*/
text-overflow: ellipsis;/*文字隐藏后添加省略号*/
white-space: nowrap;/*强制不换行*/
}
.css{
/*****多行文本*****/
width: 20em;/*不允许出现半汉字截断*/
overflow: hidden; /*自动隐藏文字*/
text-overflow: ellipsis;/*文字隐藏后添加省略号*/
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
html代码如下:
<div class="css1">Web前端开发 - 专注于网站前端设计与Web用户体验</div>
<div class="css2">Web前端开发 - 专注于网站前端设计与Web用户体验</div>
<st这yle type=”text/css”>
.css1{
color:#6699ff;border:1px #ff8000 dashed;
margin-bottom:20px;
width: 20em;/*不允许出现半汉字截断*/
}
.css2 {
overflow: hidden; /*自动隐藏文字*/
text-overflow: ellipsis;/*文字隐藏后添加省略号*/
white-space: nowrap;/*强制不换行*/
width: 20em;/*不允许出现半汉字截断*/
color:#6699ff;border:1px #ff8000 dashed;
}
</style>
<div class=”css1″>Web前端开发 – 专注于网站前端设计与Web用户体验</div>
<div class=”css2″>Web前端开发 – 专注于网站前端设计与Web用户体验</div>
<p>
.clearfix:after, .clearfix:before {
content: "";
display: block;
height:0;
clear:both;
visibility: hidden;
}
.clearfix {
*zoom:1;
}
<meta name="format-detection" content="telephone=no">
<meta http-equiv="x-rim-auto-match" content="none">
<a href="sms:13764567708">
<a href="tel:13764567708">
<a href="tel:0916 8655266#mp.weixin.qq.com">
#mp.weixin.qq.com
后缀
img{
vertical-align:bottom;//middle和top也都可以
}
为相对地址设定绝对路径
border-width: 10px 18px;
border-style: solid;
border-color: transparent transparent transparent #b51717;
http://www.cnblogs.com/jscode/archive/2012/10/19/2730905.html
{
-webkit-animation: next 1s ease-in-out infinite;
animation: next 1s ease-in-out infinite;
}
@-webkit-keyframes next {
0%,30% {
opacity: 0.2;
-webkit-transform: translateY(-10px);
}
60% {
opacity: 1;
-webkit-transform: translateY(0);
}
100% {
opacity: 0.2;
-webkit-transform: translateY(5px);
}
}
@keyframes next {
0%,30% {
opacity: 0.2;
-webkit-transform: translateY(-10px);
}
60% {
opacity: 1;
-webkit-transform: translateY(0);
}
100% {
opacity: 0.2;
-webkit-transform: translateY(5px);
}
}
function addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload!='function'){
window.onload=func;
}else{
window.onload=function(){
oldonload();
func();
}
}
}
addLoadEvent(firstfunction);
addLoadEvent(secondfunction);
function addEvent(ele,type,hander){
//type为click,而不是onclick
if(ele.addEventListener){
ele.addEventListener(type,hander,false);
} else if(ele.attachEvent){
ele.attachEvent('on'+type,hander);
} else {
ele['on'+type]=hander;
}
}
document.getElementById("myDIV").removeEventListener("mousemove", myFunction);
document.getElementById("myDIV").addEventListener("mousemove", myFunction);
function insertAfter(newElement,targetElement){
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement){
parent.appendChild(newElement)
}else{
parent.insertBefore(newElement,targetElement,nextSibling);
}
}
由于ie10以前不支持getElementsByClassName,因此便自己封装一个类似函数,以解决兼容问题。
function getByClass(clsName,parent){
var oParent=parent?document.getElementById(parent):document;
eles=[];
elements=oParent.getElementsByTagName('*');
for(var i=0,l=elements.length;i<l;i++){
if(elements[i].className==clsName){
//push给一个数组末尾添加元素
//要想数组的开头添加一个或多个元素,请使用 unshift() 方法
eles.push(elements[i]);
}
}
return eles;
}
function stopPropagation(event) {
event = event || window.event;
event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;
}
title.onclick = function(event) {
// 执行脚本
menu.style.display = "block";
event = event || window.event;
if (event.stopPropagation) { //W3C阻止冒泡方法
event.stopPropagation();
} else {
event.cancelBubble = true; //IE阻止冒泡方法
}
}
keyDown : 按任意键重复触发;
keyPress : 按下字符键重复触发;
keyUp : 释放键盘上的键触发
keyCode :得到对应键的键码值;
//和element.style.attr的区别是,后者只能取css样式中已有的值
//而前者可以取到element的默认样式的值
function getStyle(obj, attr) {
if (obj.currentStyle) { //currentStyle是针对ie浏览器
return obj.currentStyle[attr];
} else {
return getComputedStyle(obj, false)[attr]; //针对火狐浏览器
}
}
function GetScrollTop() {
return (document.documentElement.scrollTop || 0) + (document.body.scrollTop || 0);
}
function sidebar(){
window.onscroll=function(){
if(!document.getElementById) return false;
var side=document.getElementById("side"),
news=document.getElementById("news");
sideScrollTop=GetScrollTop();
if(sideScrollTop>news.offsetTop){
side.className="sidebar sidebarFixed";
console.log("a"+sideScrollTop);
} else{
side.className="sidebar";
}
}
}
function GetScrollTop() {
return (document.documentElement.scrollTop || 0) + (document.body.scrollTop || 0);
}
function startmove(obj, json, fn) {
clearInterval(obj.timer);
obj.timer = setInterval(function() {
var flag= true;
for(var attr in json){
var icur = 0;
if (attr == "opacity") {
icur = Math.round(parseFloat(getStyle(obj, attr)) * 100);
} else {
icur = parseInt(getStyle(obj, attr));
}
var sp = (json[attr] - icur) / 8;
sp = sp > 0 ? Math.ceil(sp) : Math.floor(sp);
if (icur != json[attr]) {
flag = false;
}
if (attr == "opacity") {
obj.style.filter = "alpha(opacity:" + (icur + sp) + ")"
obj.style.opacity = (icur + sp) / 100;
console.log(icur)
} else {
obj.style[attr] = icur + sp + "px"
}
}
if(flag){
clearInterval(obj.timer);
if(fn){
fn();
}
}
}, 20)
}
function getStyle(obj,attr) {
if (obj.currentStyle) { //currentStyle是针对ie浏览器
return obj.currentStyle[attr];
} else {
return getComputedStyle(obj,false)[attr]; //针对火狐浏览器
}
}
<a href="javascript:void(0);" onclick="SetHome(this,'{dede:global.cfg_basehost/}/Tenone_company/');" class="link1">设为首页</a>
<a href="javascript:void(0);" onclick="AddFavorite('{dede:global.cfg_basehost/}/Tenone_company','Tenone_company');" class="link1">收藏网站</a>
二、js部分
//set homepage(设为主页)
function SetHome(obj, vrl) {
try {
obj.style.behavior = 'url(#default#homepage)';
obj.setHomePage(vrl);
} catch (e) {
if (window.netscape) {
try {
netscape.security.PrivilegeManager
.enablePrivilege("UniversalXPConnect");
} catch (e) {
// alert("此操作被浏览器拒绝!\n请在浏览器地址栏输入"about:config"并回车\n然后将 [signed.applets.codebase_principal_support]的值设置为'true',双击即可。");
}
var prefs = Components.classes['@mozilla.org/preferences-service;1']
.getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage', vrl);
}
}
}
2、//加入收藏
function AddFavorite(sURL, sTitle) {
try {
window.external.addFavorite(sURL, sTitle);
} catch (e) {
try {
window.sidebar.addPanel(sTitle, sURL, "");
} catch (e) {
alert("加入收藏失败,请使用Ctrl+D进行添加");
<body>
<div style="width: 200px;height:18px;overflow:hidden;" id="marq">111111111111111111111111111111111111111111111111122222222222222222222222222222222223333333333333333333333333333333333333333333344444444444444444444444444444444444555555555555555555555555555555555666666666666666666666666666666666
</div>
<script>
var marq = document.getElementById("marq"),
vari = 1;
setTimeout(function() {
marq.scrollLeft += vari;
if (marq.scrollLeft < 1) {
vari = 1;
} else if (marq.scrollLeft > 1500) {
vari = -1;
}
setTimeout(arguments.callee, 18);
}, 18);
</script>
</body>
var move=0
document.addEventListener("touchmove",function(e){
if(move==0){
e.preventDefault();
e.stopPropagation();
}
},false);
`object.oninput=function(){myScript};
$('obj').on('click',function(){
alert('a');
})
有时会出现多次点击后反复绑定多次click事件。如上例,可能点击多次后,再点击一次会反复弹出提示框;
解决方法:
$('obj').unbind('click').on('click',function(){
alert('a');
})
先卸载事件,再绑定事件。
clickEvent='ontouchstart' in document.documentElement ? "touchstart" : "click"
//图片预加载
var percent = 0;//显示百分比
var loadedimg = 0;//已加载图片数量
var images = new Array()
function preload() {
//预加载图片总数
var n = preload.arguments.length;
for (i = 0; i < preload.arguments.length; i++) {
images[i] = new Image()
images[i].src = preload.arguments[i]
images[i].onload = function(){//每张图片加载成功后执行
loadedimg++;
percent = Math.round( loadedimg/n*100 );
console.log(percent);
if(percent == 100){//全部加载完成后执行
alert('ok!');
}
};
};
};
preload(
"http://m.fun-x.cn/hc/Midea/img/1LOADING_fire1_03.png"
)
最佳解决方案:canvas缓存法。
1 创建缓存数组
2 预加载图片,没加载完一张放入数组中。
3 从数组中取出图片,使用canvas画出来。
4 清除canvas当前内容
5 画下一张
核心代码:
//创建缓存数组
window.keyFrames = [];
//每加载一张图片,就将图片放入数组中
each: function() {
var img = new Image;
img.src="img/" + y + ".png";
keyFrames.push(img);
y++;
};
var ctx = document.getElementById('canvas').getContext('2d');//获取画布上下文
function animate() {
if(count==49)
return;
ctx.clearRect(0, 0, canvas.width, canvas.height);//清空当前画布内容
ctx.drawImage(keyFrames[count], 0, 0, 640, 1008);//从数组中取出图片画
count++;
setTimeout(animate,30);//循环调用
};
语法:element.classList
lel.scrollLeft = 200 ;
function fadeIn(obj, time){
var webAni = 'webkit-animation: fadeIn ' + time +'s ease-in forwards;';
var ani = 'animation: fadeIn ' + time +'s ease-in forwards;';
var fadeInAni = webAni + ani;
obj.style = fadeInAni ;
obj.setAttribute('style',fadeInAni)
}
function fadeInOut(obj, time){
var webAni = 'webkit-animation: fadeIn ' + time +'s ease-in reverse forwards;';
var ani = 'animation: fadeIn ' + time +'s ease-in reverse forwards;';
var fadeOutAni = webAni + ani;
obj.style = fadeOutAni ;
obj.setAttribute('style',fadeOutAni)
setTimeout(function() {
obj.style.display = "none";
}, time * 1000);
}