#2110
展开↯#2111
作者:广西南宁市
在VB中如何读取到桌面的路径
VB读取获取桌面路径
VB读取获取桌面路径
Private Sub Command1_Click()
Dim WshShell, a
Set WshShell = CreateObject("WScript.Shell")
a = WshShell.SpecialFolders("Desktop")
Print a
End SubRun code
Cut to clipboard
文章:VB简洁时间显示窗口最前端实例代码 发表时间:2016-10-12, 11:47:56
#2112
作者:广西南宁市
js一些常用方法的封装
//----------------------------解决兼容性方法------------------------------------------------------------
//获取元素的计算后样式属性
function getStyle(element, attr) {
if(element.currentStyle) {
return element.currentStyle[attr];
} else {
return window.getComputedStyle(element, null)[attr];
}
}
//scroll().top or scroll().left获取已经滚动到元素的左边界或上边界的像素数
function scroll() {
return {
top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0,
left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0
};
}
//获取可视窗口大小
function client() {
return {
width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0,
height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0
};
}
//event兼容
var eventCompatible = {
//event兼容
getEvent: function(event) {
return event || window.event;
},
//阻止冒泡事件
stopPropagation: function(event) {
var event = event || window.event;
if(event && event.stopPropagation) {
return event.stopPropagation();
} else {
return event.cancelBubble = true;
}
},
//event.target 事件的目标 (事件委托)
getTarget: function(event) {
var event = event || window.event;
return event.target ? event.target : event.srcElement;
},
//鼠标页面坐标
page: function(event) {
var event = event || window.event;
return {
x: event.pageX || event.clientX + document.documentElement.scrollLeft,
y: event.pageY || event.clientY + document.documentElement.scrollTop
};
},
//阻止默认行为
prevent: function(event){
var event = event || window.event;
if (event.preventDefault) {
return event.preventDefault();
}else{
return event.returnValue = false;
}
}
};
//监听事件兼容处理
function eventListener(obj, type, handler, unbind) {
if(unbind === true) {
if(obj.removeEventListener) {
obj.removeEventListener(type, handler);
} else {
obj.detachEvent("on" + type, handler);
};
} else {
if(obj.addEventListener) {
obj.addEventListener(type, handler);
} else {
obj.attachEvent("on" + type, handler);
};
};
};
//清除选择
function clearSelection() {
return window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
}
//---------------------------------------------------------------------------------------
//-----------------------自定义的方法------------------------------------------------
// trim
function trim(str) {
return str.replace(/^\s+|\s+$/g, "");
}
//十进制转其他进制 type类型有"bit"、"oct"、"hex"
function changeFromDec(type, value) {
var arr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"] var scale = 0;
var sys = "";
if(!/^[\d]*$/g.test(value)) {
return "";
}
if(!value) {
return "";
}
if(type === "bit") {
scale = 2;
} else if(type === "oct") {
scale = 8;
} else if(type === "hex") {
scale = 16;
while(true) {
sys = arr[value % 16] + sys;
value = parseInt(value / 16);
if(!value) {
break;
}
}
return sys;
}
while(true) {
sys = value % scale + sys;
value = parseInt(value / scale);
if(!value) {
break;
}
}
return sys;
}
//二进制、八进制、十六进制转十进制;
function toDec(type, value) {
if(typeof value === "number") value += "";
var scale = 0;
var flag = false;
if(type === "bit") {
flag = /^[01]*$/g.test(value);
scale = 2;
} else if(type === "oct") {
flag = /^[0-7]*$/g.test(value)
scale = 8;
} else if(type === "hex") {
flag = /^[0-9a-fA-F]*$/g.test(value)
scale = 16;
}
if(!flag || !value) return;
var arr = value.split("");
var dec = 0;
for(var i = 0; i < arr.length; i++) {
if(isNaN(parseInt(arr[i]))) {
var charCode = arr[i].charCodeAt(0);
if(charCode > 64 && charCode < 71) {
dec += (charCode - 55) * Math.pow(scale, arr.length - 1 - i)
} else if(charCode > 96 && charCode < 103) {
dec += (charCode - 87) * Math.pow(scale, arr.length - 1 - i)
}
} else {
dec += arr[i] * Math.pow(scale, arr.length - 1 - i);
}
}
return dec;
}
//转动时钟
function clock() {
var d = new Date();
var ms = d.getMilliseconds();
var s = d.getSeconds() + ms / 1000;
var m = d.getMinutes() + s / 60;
var h = d.getHours() + m / 60;
second.style.transform = "rotate(" + s * 6 + "deg)";
minute.style.transform = "rotate(" + m * 6 + "deg)";
hour.style.transform = "rotate(" + h * 30 + "deg)";
}
//匀速动画
function animate(obj, attr, distance) {
var step = 20;
var leader = parseInt(getStyle(obj, attr)) || 0
clearInterval(obj.atimer);
obj.atimer = setInterval(function() {
distance > leader ? leader += step : leader -= step;
if(Math.abs(distance - leader) > step) {
obj.style[attr] = leader + "px";
} else {
obj.style[attr] = distance + "px";
clearInterval(obj.atimer);
}
}, 15);
}
//缓动动画(单个数值属性)
function slowSpeedAnimate(element, attr, distance) {
clearInterval(element.timer);
element.timer = setInterval(function() {
var removing = parseInt(getStyle(element, attr)) || 0; //element.offsetLeft;
var step = (distance - removing) / 20;
step = step > 0 ? Math.ceil(step) : Math.floor(step);
removing = removing + step;
element.style[attr] = removing + "px";
if(removing == distance) {
clearInterval(element.timer);
}
}, 15)
}
//缓动动画(多个数值属性)
function moreAnimate(element, json, interval, fn) {
clearInterval(element.timer);
element.timer = setInterval(function() {
var flag = true;
for(var k in json) {
if(k === "opacity") {
var removing = getStyle(element, k) * 100; //element.offsetLeft;
var distance = json[k] * 100;
var step = (distance - removing) / interval;
step = step > 0 ? Math.ceil(step) : Math.floor(step);
removing = removing + step;
element.style[k] = removing / 100;
} else {
var removing = parseInt(getStyle(element, k)) || 0; //element.offsetLeft;
var distance = json[k];
var step = (distance - removing) / interval;
step = step > 0 ? Math.ceil(step) : Math.floor(step);
removing = removing + step;
element.style[k] = removing + "px";
}
if(removing != distance) {
flag = false;
}
}
if(flag) {
clearInterval(element.timer);
if(fn) {
fn();
}
}
}, 15)
}
//进度条
function Progress(id, width, height, outClass, inClass) {
this.width = width;
this.height = height;
this.color = "#fff";
this.progress = document.createElement("div");
this.percentage = document.createElement("div");
this.filler = document.createElement("div");
var element = document.getElementById(id);
if(width) {
this.progress.style.width = this.width + "px";
} else {
this.progress.style.width = "200px";
}
if(height) {
this.progress.style.height = this.height + "px";
} else {
this.progress.style.height = "20px";
}
if(typeof outClass === "string" && (/^[a-zA-Z](\w|[-])+$/g.test(outClass))) {
this.progress.className = outClass;
} else {
this.progress.style.border = "1px solid #cccccc";
this.progress.style.backgroundImage = "linear-gradient(to bottom, #ccc 0%, #fff 40%, #ccc 100%)";
this.progress.style.borderRadius = "10px";
}
this.progress.style.overflow = "hidden";
this.progress.style.position = "relative";
element.appendChild(this.progress);
//
this.progress.appendChild(this.percentage);
this.percentage.style.width = "100%";
this.percentage.style.height = "100%";
this.percentage.style.textAlign = "center";
this.percentage.style.position = "absolute";
this.percentage.innerHTML = "0%";
//
this.progress.appendChild(this.filler);
this.filler.style.height = "100%";
this.filler.style.width = 0;
if(typeof inClass === "string" && (/^[a-zA-Z](\w|[-])+$/g.test(inClass))) {
this.filler.className = inClass;
} else {
this.filler.style.backgroundColor = "#DC7BBE";
this.filler.style.backgroundImage = "linear-gradient(to bottom, #0AF 0%, #0ff 40%, #0AF 100%)";
}
}
Progress.prototype.fill = function(value) {
if(value) {
this.percentage.innerHTML = value + "%";
this.percentage.style.color = this.color;
value = (this.progress.offsetWidth - 2) / 100 * value;
this.filler.style.width = value + "px";
} else {
this.filler.style.width = 0;
this.percentage.innerHTML = "0%";
}
}
//ajax封装
function ajax(a, b) { //type, url, async, dataType, data, fn
var xhr = null,
type = "get",
url = "#",
async = true,
dataType = "text",
data = "",
jsonp = "",
jsonpCallback = "",
methodName = "",
c = null;
if(typeof a === "string") {
url = a;
}
if(typeof a === "object") {
c = a;
} else if(typeof b == "object") {
c = b;
}
if(c) {
if(c.type && typeof c.type === "string") {
type = c.type;
};
if(c.url && typeof c.url === "string") {
url = c.url;
};
if(c.async && typeof c.async === "boolean") {
async = c.async;
};
if(c.dataType && typeof c.dataType === "string") {
dataType = c.dataType;
};
if(c.data && typeof c.data === "object") {
var arr = [];
for(k in c.data) {
arr.push(k + "=" + c.data[k]);
}
data = arr.join("&");
};
if(c.jsonp && typeof c.jsonp === "string") {
if(!c.dataType) {
dataType = "jsonp";
}
jsonp = c.jsonp;
if(data) {
data += "&";
}
} else {
jsonp = "callback";
}
if(c.jsonpCallback && typeof c.jsonpCallback === "string") {
methodName = c.jsonpCallback;
} else {
methodName = "jquery" + new Date().getTime() + "_" + (Math.random() + "").substr(2);
}
};
if(dataType == "jsonp") {
data += jsonp + "=" + methodName;
window[methodName] = function(data) {
c.success(data);
}
var script = document.createElement("script");
script.src = url + "?" + data;
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
} else {
//ajax部分
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = ActiveXObject("Microsoft.XMLHTTP");
}
if(type == "get") {
if(data) {
url += encodeURI("?" + data);
}
data = null;
};
xhr.open(type, url, async);
if(type == "post") {
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
};
xhr.send(data);
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
var obj = {
text: xhr.responseText,
json: JSON.parse(xhr.responseText),
};
var data = obj[dataType];
if(typeof c.success === "function") {
c.success(data);
}
}
}
}
}
//millisec是距离 GMT 时间 1970 年 1 月 1 日午夜的毫秒数 (解析通过ajax返回的数据中的毫秒数值的日期)
function getFullDate(millisec, lang) {
var data = new Date();
data.setTime(millisec);
var year = data.getFullYear(),
month = data.getMonth(),
day = data.getDate(),
week = data.getDay(),
hour = data.getHours(),
minute = data.getMinutes(),
second = data.getSeconds(),
am = "am",
pm = "pm",
enWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
cnWeek = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
enMonth = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
cnMonth = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
cnDay = ["廿", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"] if(lang == "cn") {
am = "上午";
pm = "下午";
};
day = day < 10 ? "0" + day : day;
var obj = {
year: year,
month: lang ? (lang == "cn" ? cnMonth[month] : enMonth[month]) : (month < 10 ? "0" + (month + 1) : (month + 1)),
day: day,
week: lang == "en" ? enWeek[week] : cnWeek[week],
hour: hour < 10 ? "0" + hour : hour,
minute: minute < 10 ? "0" + minute : minute,
second: second < 10 ? "0" + second : second,
ms: data.getMilliseconds(),
am: am,
pm: pm,
Hour: hour + minute / 60 > 12 ? (hour == 12 ? pm + hour : pm + hour % 12) : am + hour,
};
return obj;
}
//右键菜单
function RightMenu(area) {
this.area = area;
this.menu = null;
}
//根据传入的值获取目标
RightMenu.prototype.target = function(area) {
if(typeof area === "string") {
return document.getElementById(area);
} else if(typeof area === "object") {
return area;
}
}
RightMenu.prototype.init = function(data, defaultStyle, userStyle, hoverStyle) {
this.createMenu(data, defaultStyle, userStyle, hoverStyle);
this.showMenu();
}
RightMenu.prototype.createMenu = function(data, defaultStyle, userStyle, hoverStyle) {
if(typeof defaultStyle == "string" && !defaultStyle) {
hoverStyle = userStyle;
userStyle = defaultStyle;
defaultStyle = true;
}
//创建菜单及样式
this.menu = document.createElement("ul");
this.menu.style.position = "absolute";
this.menu.style.margin = 0;
this.menu.style.padding = "2px";
this.menu.style.listStyle = "none";
this.menu.style.display = "none";
if(!defaultStyle) {
this.menu.style.border = "1px solid #DDDDDD";
this.menu.style.backgroundColor = "#CCCCCC";
this.menu.style.boxShadow = "5px 5px 5px #ccc";
} else {
this.menu.className = userStyle;
}
//选中项样式
var hover = document.createElement("span");
hover.style.display = "block";
hover.style.position = "absolute"
hover.style.top = 0;
hover.style.left = 0;
hover.style.boxSizing = "border-box";
hover.style.width = "100%";
hover.style.height = "100%";
if((!defaultStyle) || (defaultStyle && !hoverStyle)) {
hover.style.border = "1px solid #aaa";
hover.style.borderRadius = "5px";
hover.style.backgroundImage = "linear-gradient(to bottom,rgba(255,255,255,0.5)0%,rgba(255,255,255,0.1)50%,rgba(255,255,255,0.1)100%)";
} else {
hover.className = hoverStyle;
}
//创建菜单项
for(var item in data) {
var li = document.createElement("li");
li.style.position = "relative";
li.style.padding = "5px 10px";
li.style.cursor = "pointer";
//绑定事件
li.addEventListener("mouseenter", function() {
this.appendChild(hover);
});
li.addEventListener("mouseleave", function() {
this.removeChild(hover);
});
var itemData = data[item] for(var obj in itemData) {
if(typeof itemData[obj] === "string") {
li.innerHTML = itemData[obj];
} else if(typeof itemData[obj] === "object") {
var handlerData = itemData[obj];
for(var type in handlerData) {
li.addEventListener(type, handlerData[type]);
}
}
}
this.menu.appendChild(li);
}
this.target(this.area).appendChild(this.menu);
}
RightMenu.prototype.showMenu = function() {
var that = this;
this.menu.parentNode.oncontextmenu = function(ev) {
that.menu.style.display = "block";
that.menu.style.left = ev.pageX + "px";
that.menu.style.top = ev.pageY + "px";
if(that.menu.parentNode.offsetWidth < that.menu.offsetLeft + that.menu.offsetWidth) {
that.menu.style.left = ev.pageX - that.menu.offsetWidth + "px";
};
if(that.menu.parentNode.offsetHeight < that.menu.offsetTop + that.menu.offsetHeight) {
that.menu.style.top = ev.pageY - that.menu.offsetHeight + "px";
};
return false;
}
this.menu.parentNode.onclick = function() {
that.menu.style.display = "none";
}
document.onkeydown = function(e) {
if(e.keyCode == 18 || e.keyCode == 27) {
that.menu.style.display = "none";
}
}
}
//拖拽
function Drag(target, area) {
this.target = target;
this.area = area;
}
//根据传入的值获取目标
Drag.prototype.dragTarget = function(target) {
if(typeof target === "string") {
return document.getElementById(target);
} else if(typeof target === "object") {
return target;
}
}
Drag.prototype.init = function() {
this.target = this.dragTarget(this.target);
this.target.style.position = "absolute";
this.target.setAttribute("draggable","true");
this.dragEvent();
}
Drag.prototype.dragEvent = function() {
var that = this;
this.target.onmousedown = function(e) {
e = e || window.event;
that.disX = e.clientX - that.target.offsetLeft;
that.disY = e.clientY - that.target.offsetTop;
document.onmousemove = function(e) {
that.moveEvent(e);
}
document.onmouseup = function(){
that.target.style.opacity = "1";
document.onmousemove = document.onmouseup = null;
}
return false;
}
}
Drag.prototype.moveEvent = function(e) {
var limitX = e.clientX - this.disX;
var limitY = e.clientY - this.disY;
//没有指定区域则用document
if (!this.area) {
this.area = document.documentElement;
}
if(limitX < this.area.offsetLeft) {
limitX = this.area.offsetLeft;
} else if(limitX > this.area.clientWidth + this.area.offsetLeft - this.target.offsetWidth) {
limitX = this.area.clientWidth + this.area.offsetLeft - this.target.offsetWidth;
}
if(limitY < this.area.offsetTop) {
limitY = this.area.offsetTop;
} else if(limitY > this.area.clientHeight + this.area.offsetTop - this.target.offsetHeight) {
limitY = this.area.clientHeight + this.area.offsetTop - this.target.offsetHeight;
}
this.target.style.left = limitX + "px";
this.target.style.top = limitY + "px";
this.target.style.opacity = "0.8";
}Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2016-10-11, 18:00:45
#2114
作者:广西南宁市
别人买iPhone4时我买了洗衣机,
别人买iPhone4s时我买了冰箱,
别人买iPhone5的时候我买了空调,
别人买iPhone5s的时候我买了电脑,
别人买iPhone6的时候我买了电视,
别人买iPhone6s的时候我买了沙发,
别人买iPhone7的时候我买了note7,
现在,我的洗衣机冰箱空调电脑电视沙发全都没了。
别人买iPhone4s时我买了冰箱,
别人买iPhone5的时候我买了空调,
别人买iPhone5s的时候我买了电脑,
别人买iPhone6的时候我买了电视,
别人买iPhone6s的时候我买了沙发,
别人买iPhone7的时候我买了note7,
现在,我的洗衣机冰箱空调电脑电视沙发全都没了。
文章:他不是脾气暴躁,只是不能被打扰 发表时间:2016-10-11, 15:27:11
#2115
作者:广西南宁市
更正:
Public i As Long
Public j As Long
VB中Integer(整型)和Long(长整型)有什么区别?
Integer 数据类型
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符是百分比符号 (%)。
Long 数据类型
Long(长整型)变量存储为 32 位(4 个字节)有符号的数值形式,其范围从 -2,147,483,648 到 2,147,483,647。Long 的类型声明字符为和号 (&)。
Public i As Long
Public j As Long
VB中Integer(整型)和Long(长整型)有什么区别?
Integer 数据类型
Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符是百分比符号 (%)。
Long 数据类型
Long(长整型)变量存储为 32 位(4 个字节)有符号的数值形式,其范围从 -2,147,483,648 到 2,147,483,647。Long 的类型声明字符为和号 (&)。
文章:VB简洁时间显示窗口最前端实例代码 发表时间:2016-10-11, 11:44:52
#2116
作者:北京市
黑客针对苹果Touch ID的破解就曾进行过一次典型的成功募资。苹果在iPhone 5s上推出的指纹身份辨识感应器Touch ID,是苹果花了好几年时间、数百万美元,开发出来的专利生物辨识科技,号称是“方便且极度安全的手机使用方式”。
伴随着Touch ID功能的发布,全世界的安全专家和骇客都蠢蠢欲动,大家都很想知道,究竟会是谁、又需要花多少时间,第一个破解这套“极度安全”的系统?于是,骇客同时用上了群众募资和游戏化两个元素,先筹建一个名为“Touch ID被破解了吗”的网站,由所有骇客捐款提供2万美元奖金,并设有排行榜显示距离2万美元募资目标还有多远。
到最后,大奖落到了混沌电脑俱乐部代号为“Starbug”的骇客手中。他巧妙地想出:在手机真正的主人使用手机,在荧幕上留下指纹之后,Starbug就将指纹照成一张2400dpi的调解析度相片,输入Photoshop,清掉杂讯,黑白反相,再打印到描图纸上。经过蚀刻得到指纹后涂上白膠,在白膠干燥后,按到Touch ID感应器,就能为手机解锁。
伴随着Touch ID功能的发布,全世界的安全专家和骇客都蠢蠢欲动,大家都很想知道,究竟会是谁、又需要花多少时间,第一个破解这套“极度安全”的系统?于是,骇客同时用上了群众募资和游戏化两个元素,先筹建一个名为“Touch ID被破解了吗”的网站,由所有骇客捐款提供2万美元奖金,并设有排行榜显示距离2万美元募资目标还有多远。
到最后,大奖落到了混沌电脑俱乐部代号为“Starbug”的骇客手中。他巧妙地想出:在手机真正的主人使用手机,在荧幕上留下指纹之后,Starbug就将指纹照成一张2400dpi的调解析度相片,输入Photoshop,清掉杂讯,黑白反相,再打印到描图纸上。经过蚀刻得到指纹后涂上白膠,在白膠干燥后,按到Touch ID感应器,就能为手机解锁。
文章:Google方程式 WWWDOT – GOOGLE = DOTCOM 发表时间:2016-10-11, 01:12:09
#2118
作者:广西南宁市
莎翁笔下的约翰王曾指着他为之奋斗的宝座说,“我和我的悲哀都在这里”!出行企业的野心和无奈总比倒腾学区房的上市公司要值得尊敬的多。
文章:成功的故事只能倒叙着讲 发表时间:2016-10-09, 14:20:37
#2119
作者:广西南宁市
【74由几个1几个5几个10几个20组成】
var num = 74;
for(one = 0; one <= num; one++){
for(five = 0; five <= num/5 ; five++){
for(ten = 0; ten <= num/5 ; ten++){
for(twenty = 0; twenty <= num/20; twenty++){
if(one + five*5 + ten*10 + twenty*20 == num){
console.log(one + "个1," + five + "个5," + ten +"个10," + twenty + "个20组成。");
}
}
}
}
}Run code
Cut to clipboard
文章:Google方程式 WWWDOT – GOOGLE = DOTCOM 发表时间:2016-10-08, 17:16:37
#2120
作者:广西南宁市
纯css实现点击特效
CSS里的:target伪选择器
:target是CSS里一个非常有趣的伪选择器。它在CSS里发生效力的过程是这样的:当浏览器地址里的hash(地址里#号后面的部分)和:target伪选择器指定的ID匹配上时,它的样式就会在这个ID元素上生效。让我们看一看这个:target伪选择器是如何起作用的:
观看演示
HTML代码
下面的两个HTML元素上我们都指定了ID:
注意上面元素的ID值,当:target指定的ID和window.location.hash值一致时,伪选择器的样式将会生效。
CSS代码
当window.location.hash是”section2″时,ID为”section2″的元素将会变红,并显示下划线。简单吧!很像使用了CSS动画技术,你甚至可以在这种效果上做出动画。
:target非常有趣,但我们还没有发现多少人使用这种技术。其实,如果不是太注重动态效果,使用这种浏览器原生技术来修饰你的应用是不错的选择。
怎么用纯css实现和按钮一样的点击一次,然后改变样式?听说是用伪元素target,不过我不知道怎么操作
visited的方法前面的小伙伴已经讲了;那我还是帮你搞懂伪元素 target 的用法吧。学东西毕竟得踏踏实实,搞懂想要的再去学新的。:target伪选择器指定的ID匹配上时,它的样式就会在这个ID元素上生效。Run code
Cut to clipboard
CSS里的:target伪选择器
:target是CSS里一个非常有趣的伪选择器。它在CSS里发生效力的过程是这样的:当浏览器地址里的hash(地址里#号后面的部分)和:target伪选择器指定的ID匹配上时,它的样式就会在这个ID元素上生效。让我们看一看这个:target伪选择器是如何起作用的:
观看演示
HTML代码
下面的两个HTML元素上我们都指定了ID:
<h2 id="section1">Section 1</h2>
<h2 id="section2">Section 2</h2>Run code
Cut to clipboard
注意上面元素的ID值,当:target指定的ID和window.location.hash值一致时,伪选择器的样式将会生效。
CSS代码
:target伪选择器可以配合CSS类、网页标记和任何其它CSS选择器使用:
/* would apply to all targetted elements */
:target {
color: #000;
}
/* applies to H2's */
h2:target {
color: #f00;
}Run code
Cut to clipboard
当window.location.hash是”section2″时,ID为”section2″的元素将会变红,并显示下划线。简单吧!很像使用了CSS动画技术,你甚至可以在这种效果上做出动画。
:target非常有趣,但我们还没有发现多少人使用这种技术。其实,如果不是太注重动态效果,使用这种浏览器原生技术来修饰你的应用是不错的选择。
文章:常用html、demo代码 发表时间:2016-10-08, 09:48:17
#2121
作者:广西南宁市
纯css3自适滑动选项卡
用input标签实现css3点击
用input标签实现css3点击
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
html,
body { height: 100%; position: relative; overflow: hidden; margin: 0; }
div { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transition: transform 0.4s ease; transform: translateX(-100%); }
div:after { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 5vw; font-family: 'Oswald', sans-serif; text-transform: uppercase; color: #fdfdfd; letter-spacing: 4px; }
div:nth-of-type(1) { background-color: #1abc9c; }
div:nth-of-type(1):after { content: "#1abc9c"; }
div:nth-of-type(2) { background-color: #2ecc71; }
div:nth-of-type(2):after { content: "#2ecc71"; }
div:nth-of-type(3) { background-color: #3498db; }
div:nth-of-type(3):after { content: "#3498db"; }
div:nth-of-type(4) { background-color: #e74c3c; }
div:nth-of-type(4):after { content: "#e74c3c"; }
div:nth-of-type(5) { background-color: #34495e; }
div:nth-of-type(5):after { content: "#34495e"; }
div:nth-of-type(6) { background-color: #9b59b6; }
div:nth-of-type(6):after { content: "#9b59b6"; }
div:nth-of-type(7) { background-color: #f1c40f; }
div:nth-of-type(7):after { content: "#f1c40f"; }
div:nth-of-type(8) { background-color: #e67e22; }
div:nth-of-type(8):after { content: "#e67e22"; }
input[type="radio"] { position: absolute; right: 0; width: 25%; height: 20px; outline: 20px solid; outline-offset: -10px; margin: 0; z-index: 1; cursor: pointer; }
input[type="radio"]:nth-of-type(1) { outline-color: #1abc9c; left: 0%; }
input[type="radio"]:nth-of-type(2) { outline-color: #2ecc71; left: 25%; }
input[type="radio"]:nth-of-type(3) { outline-color: #3498db; left: 50%; }
input[type="radio"]:nth-of-type(4) { outline-color: #e74c3c; left: 75%; }
input[type="radio"]:nth-of-type(5) { outline-color: #34495e; left: 0%; bottom: 0px; }
input[type="radio"]:nth-of-type(6) { outline-color: #9b59b6; left: 25%; bottom: 0px; }
input[type="radio"]:nth-of-type(7) { outline-color: #f1c40f; left: 50%; bottom: 0px; }
input[type="radio"]:nth-of-type(8) { outline-color: #e67e22; left: 75%; bottom: 0px; }
input[type="radio"]:checked+ div { transform: translateX(0%); transition: transform 0.4s ease 0.4s; }
</style>
</head>
<body>
<input type="radio" name="name" checked="checked"/>
<div></div>
<input type="radio" name="name"/>
<div></div>
<input type="radio" name="name"/>
<div></div>
<input type="radio" name="name"/>
<div></div>
<input type="radio" name="name"/>
<div></div>
<input type="radio" name="name"/>
<div></div>
<input type="radio" name="name"/>
<div></div>
<input type="radio" name="name"/>
<div></div>
</body>
</html>Run code
Cut to clipboard
文章:常用html、demo代码 发表时间:2016-10-08, 09:35:10
#2122
作者:广西南宁市
CSS3实现自定义Checkbox和Radiobox
我们知道浏览器自带的Checkbox复选框不怎么美观(这或许是我们看习惯了的缘故),而且复选框在不同的浏览器上显示的样式又有很大的差异,由于目前越来越多的人开始接受支持CSS3的现代浏览器,所以今天就简单的用一些CSS3代码来自定义Checkbox的显示方式,个人觉得比浏览器自带的Checkbox美观不少。
效果图如下

下面来分析一下源代码,原理很简单,先把页面上<input type="checkbox" />的display设置为none,从而把它隐藏掉,然后利用CSS3代码来绘制与checkbox邻近的label元素:
HTML代码:
CSS3代码:
下面的CSS代码可以让checkbox选中后出现阴影的效果,主要利用了box-shadow属性:
radiobox的实现也是同样的原理
我们知道浏览器自带的Checkbox复选框不怎么美观(这或许是我们看习惯了的缘故),而且复选框在不同的浏览器上显示的样式又有很大的差异,由于目前越来越多的人开始接受支持CSS3的现代浏览器,所以今天就简单的用一些CSS3代码来自定义Checkbox的显示方式,个人觉得比浏览器自带的Checkbox美观不少。
效果图如下
下面来分析一下源代码,原理很简单,先把页面上<input type="checkbox" />的display设置为none,从而把它隐藏掉,然后利用CSS3代码来绘制与checkbox邻近的label元素:
HTML代码:
<input type="checkbox" id="checkbox-1-1" class="regular-checkbox" /><label for="checkbox-1-1"></label>
<input type="checkbox" id="checkbox-1-2" class="regular-checkbox" /><label for="checkbox-1-2"></label>
<input type="checkbox" id="checkbox-1-3" class="regular-checkbox" /><label for="checkbox-1-3"></label>
<input type="checkbox" id="checkbox-1-4" class="regular-checkbox" /><label for="checkbox-1-4"></label>Run code
Cut to clipboard
CSS3代码:
.regular-checkbox + label {
background-color: #fafafa;
border: 1px solid #cacece;
box-shadow: 0 1px 2px rgba(0,0,0,0.05), inset 0px -15px 10px -12px rgba(0,0,0,0.05);
padding: 9px;
border-radius: 3px;
display: inline-block;
position: relative;
}Run code
Cut to clipboard
下面的CSS代码可以让checkbox选中后出现阴影的效果,主要利用了box-shadow属性:
.regular-checkbox + label:active, .regular-checkbox:checked + label:active {
box-shadow: 0 1px 2px rgba(0,0,0,0.05), inset 0px 1px 3px rgba(0,0,0,0.1);
}Run code
Cut to clipboard
radiobox的实现也是同样的原理
文章:常用html、demo代码 发表时间:2016-10-08, 09:33:37
#2123
作者:广西南宁市
网页设计前端页面制作的规范要求和注意事项
组合命名规则:
[元素类型]-[元素作用/内容] 如:搜索按钮: btn-search
登录表单:form-login
新闻列表:list-news
涉及到交互行为的元素命名:
凡涉及交互行为的元素通常会有正常、悬停、点击和已浏览等不同样式,命名可参考以下规则:
鼠标悬停::hover 点击:click 已浏览:visited
如:搜索按钮: btn-search、btn-search-hover、btn-search-visited
用户体验方面需要注意的:
1). 每个连接,按钮要做上鼠标hover时的一个变化效果。如果hover时是换一张背景图片,请把这两张图片整合在一张图片中,以防止在hover时,页面还在download变化的那张图片,这样会出现那个按钮无图的间隔;
2). INPUT有个label,可以让用户在点击字时,光标自动跳入相应input中;
组合命名规则:
[元素类型]-[元素作用/内容] 如:搜索按钮: btn-search
登录表单:form-login
新闻列表:list-news
涉及到交互行为的元素命名:
凡涉及交互行为的元素通常会有正常、悬停、点击和已浏览等不同样式,命名可参考以下规则:
鼠标悬停::hover 点击:click 已浏览:visited
如:搜索按钮: btn-search、btn-search-hover、btn-search-visited
用户体验方面需要注意的:
1). 每个连接,按钮要做上鼠标hover时的一个变化效果。如果hover时是换一张背景图片,请把这两张图片整合在一张图片中,以防止在hover时,页面还在download变化的那张图片,这样会出现那个按钮无图的间隔;
2). INPUT有个label,可以让用户在点击字时,光标自动跳入相应input中;
文章:常用html、demo代码 发表时间:2016-10-08, 09:24:02
#2125
作者:中国
曾志伟去姚明家,因为姚明家特制的门,门镜高,敲了好几次门都没有人开,以为姚明不在家,就走了。
第二天他看到姚明无精打采的,就问他昨晚干嘛去了。
姚明神秘的说:昨晚我家好像闹鬼了,一直有人敲门,可是从猫眼又看不见人,吓得我一整夜没睡。
误解一般都是因高度不同造成的。 所以,以后再被人误解就别再闹心了,因为高度不同,角度不一样,今天你对太多事情不理解,是因为你还没有站到对方的位置。
第二天他看到姚明无精打采的,就问他昨晚干嘛去了。
姚明神秘的说:昨晚我家好像闹鬼了,一直有人敲门,可是从猫眼又看不见人,吓得我一整夜没睡。
误解一般都是因高度不同造成的。 所以,以后再被人误解就别再闹心了,因为高度不同,角度不一样,今天你对太多事情不理解,是因为你还没有站到对方的位置。
文章:他不是脾气暴躁,只是不能被打扰 发表时间:2016-10-04, 01:41:38
#2126
作者:中国
公司会上,总经理在黑板上做了这四道题: 2+2=4;4+4=8;8+8=16;9+9=20。 员工们纷纷说道:“你算错了一道。” 总经理转过身来,慢慢地说道:“是的,大家看得很清楚,这道题是算错了。可是前面我算对了三道题,为什么没有人夸奖我,而只是看到我算错的一道呢!”做人也是这样,你对他十次好,也许他忘记了,一次不顺心,也许会抹杀所有。这就是100-1=0人性的道理。
文章:他不是脾气暴躁,只是不能被打扰 发表时间:2016-10-04, 00:05:47
#2127
作者:广西南宁市
程序的优化问题
有这样一个问题,有a,b,c,d四个字母,每当刷新页面时会以随机的顺序出现,比如a,d,b,c和b,d,c,a。
我当时的解决方案为:
不过这样写有着很明显的弊端,那就是下次如果想换一些字母进行输出时,必须将程序进行一次大的更改才能继续进行应用,这样做不利于重复使用
下面这种方法就很好的解决了这个问题,当想再次调用时,只需将数组arr中的值进行更改就可以了
在我看来,真正好的函数必须做到可重复使用,模块化,和具有良好的封装性。
找了个最精简的写法
有这样一个问题,有a,b,c,d四个字母,每当刷新页面时会以随机的顺序出现,比如a,d,b,c和b,d,c,a。
我当时的解决方案为:
<script type="text/javascript">
var str1;
var str=[];
var flag1=true;
var flag2=true;
var flag3=true;
var flag4=true;
do{
var num=parseInt(Math.round(Math.random()*(4-1))+1);
if(num==1&&flag1){
str[str.length]="a";
flag1=false;
}else if(num==2&&flag2){
str[str.length]="b";
flag2=false;
}else if(num==3&&flag3){
str[str.length]="c";
flag3=false;
}else if(num==4&&flag4){
str[str.length]="d";
flag4=false;
}
}while(flag1||flag2||flag3||flag4)
str1=str[0]+str[1]+str[2]+str[3];
document.write(str1);
</script>Run code
Cut to clipboard
不过这样写有着很明显的弊端,那就是下次如果想换一些字母进行输出时,必须将程序进行一次大的更改才能继续进行应用,这样做不利于重复使用
下面这种方法就很好的解决了这个问题,当想再次调用时,只需将数组arr中的值进行更改就可以了
<script type="text/javascript">
var arr=["a","b","c","d"];
function changestr(){
var newArry=[];
var temp=[];//新创建的两个数组
for(var p in arr){
temp[p]=arr[p];//将原本数组中的值复制给重新定义的数组
}
for(var i=0;i<arr.length;i++){
var random=Math.round(Math.random()*(temp.length-1));//产生0~temp数组长度-1的值
newArry[i]=temp[random];//将temp数组中随机出来的数组值赋给新数组
temp.splice(random,1);//删除赋给新数组的值,temp数组的长度减一,直到temp中没有值为止
}
return newArry
}
document.write(Arry=changestr());
</script>Run code
Cut to clipboard
在我看来,真正好的函数必须做到可重复使用,模块化,和具有良好的封装性。
找了个最精简的写法
function randomsort(a, b) {
return Math.random()>.5 ? -1 : 1;//用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1
}
var arr = ["a","b","c","d"];
arr.sort(randomsort);
document.write(arr);Run code
Cut to clipboard
文章:Google方程式 WWWDOT – GOOGLE = DOTCOM 发表时间:2016-09-30, 18:43:01
#2128
作者:广西南宁市
盒子不同模式下的宽高判断
曾经遇到过这样的问题,设定一个div,当给div设置padding的时候,发现整个div的宽高都发生了变化,这里就产生了一个疑惑,一个盒子的总体宽高到底是怎么去判断的呢?
经过查询得知,盒子宽高的判定模式一共有两种,分别为标准模式和怪异模式。
一般情况下个盒子的宽高在一般情况下等于内容的宽高+边框的宽高+内边距的宽高+外边距的宽高
这就是标准模式下的盒子宽高判定
但在某些时候(ie6,7,8 下DOCTYPE缺失)盒子的宽高等于设定的宽高+外边距的宽高,这里的设定的宽高就等于内容的宽高+内边距的宽高+边框的宽高
这就是怪异模式下的盒子宽高判定
我们可以通过使用box-sizing属性来决定使用哪一种模式,
通过怪异模式我们可以在不改变盒子整体宽高的情况下给其设定padding。
曾经遇到过这样的问题,设定一个div,当给div设置padding的时候,发现整个div的宽高都发生了变化,这里就产生了一个疑惑,一个盒子的总体宽高到底是怎么去判断的呢?
经过查询得知,盒子宽高的判定模式一共有两种,分别为标准模式和怪异模式。
一般情况下个盒子的宽高在一般情况下等于内容的宽高+边框的宽高+内边距的宽高+外边距的宽高
这就是标准模式下的盒子宽高判定
但在某些时候(ie6,7,8 下DOCTYPE缺失)盒子的宽高等于设定的宽高+外边距的宽高,这里的设定的宽高就等于内容的宽高+内边距的宽高+边框的宽高
这就是怪异模式下的盒子宽高判定
我们可以通过使用box-sizing属性来决定使用哪一种模式,
content-box : 将采用标准模式解析计算 ,
border-box: 将采用怪异模式解析计算Run code
Cut to clipboard
通过怪异模式我们可以在不改变盒子整体宽高的情况下给其设定padding。
文章:常用html、demo代码 发表时间:2016-09-30, 18:40:53
Private Sub Label4_Click() Dim WshShell, a Set WshShell = CreateObject("WScript.Shell") a = WshShell.SpecialFolders("Desktop") Shell "explorer " & a, 1 End Sub