jQuery图片放大编辑插件汇总

基于Web的在线应用已经是一个逐步成熟的趋势,Web应用的丰富多样化,都是基于JavaScript框架完成的,其中 jQuery 框架被越来越多的Web开发者青睐,它可以让你“少写,多做”轻松完成复杂效果,这里就是基于jQuery 的14个图片放大编辑插件。

jQuery gzoom plugin

firstZoom

Technorati-Tags: ,,

继续阅读

利用css解决绝对定位层遮挡的问题:pointer-events

在没有背景和图片填充的情况下,火狐和Chrome下不能直接点击绝对定位层下面的元素(比如链接),下面的链接被上面的绝对定位层挡住了。在IE里面是可以直接点击绝对定位层下面的链接。

对于这种问题需要用到一个css3的属性,可以通过给绝对定位的层多加一个样式 pointer-events:none; 以后, 绝对定位层下的元素就可以点击了。

光给绝对定位的层添加pointer-events:none; 的样式是不够的,你可以发现所有在此层里的元素,都不能点击了,就连链接和按钮也同样不起作用,所以我们需要给绝对定位层中的其他非空的元素把样式再返回。
给里面的元素重新设置为 pointer-events:auto,只给需要操作的元素区域设置即可。

查看演示页面

pointer-events属性有很多值:
pointer-events: auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit
但是对于浏览器来说,只有auto和non两个值可用,其它的几个是针对SVG的(本身这个属性就来自于SVG技术)。

下面介绍一下pointer-events这两个属性值详细描述
auto——效果和没有定义pointer-events属性相同,鼠标不会穿透当前层。在SVG中,该值和visiblePainted的效果相同。
none——元素不再是鼠标事件的目标,鼠标不再监听当前层而去监听下面的层中的元素。但是如果它的子元素设置了pointer-events为其它值,比如auto,鼠标还是会监听这个子元素的。
其它属性值为SVG专用,这里不再多介绍了。

对于浏览器兼容的问题:Firefox 3.6+和chrome 2.0+ 以及safari 4.0+都支持这个CSS3属性。

PHP采集程序常用的采集函数

这几天关注了一下PHP的采集程序,才发现用PHP采集内容是这么方便,把经常用到的采集函数在这里总结一下,方便以后使用!

获取所有链接内容和地址

function getAllURL($code){
preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr);
return array('name'=>$arr[2],'url'=>$arr[1]);
}

获取所有的图片地址

function getImgSrc($code){
$reg = "/]*src=\"(http:\/\/(.+)\/(.+)\.(jpg|gif|bmp|bnp|png))\"/isU";
preg_match_all($reg, $code, $img_array, PREG_PATTERN_ORDER);
return $img_array[1];
}

当前的脚本网址

function getSelfURL(){
if(!empty($_SERVER["REQUEST_URI"])){
$scriptName = $_SERVER["REQUEST_URI"];
$nowurl = $scriptName;
}else{
$scriptName = $_SERVER["PHP_SELF"];
if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;
else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
}
return $nowurl;
}

继续阅读

[搜集] 完整的WordPress函数大全

在修改和制作Wordpress主题时经常为不知道内置函数而苦恼,而wordpress官方的文档看起来又不是那么方便。所搜集并且整理了一下放这,以备后用。

判断页面函数

is_home() : 是否为主页

is_single() : 是否为内容页(Post)

is_page() : 是否为内容页(Page)

is_category() : 是否为Category/Archive页

is_tag() : 是否为Tag存档页

is_date() : 是否为指定日期存档页

is_year() : 是否为指定年份存档页

is_month() : 是否为指定月份存档页

is_day() : 是否为指定日存档页

is_time() : 是否为指定时间存档页

is_archive() : 是否为存档页

is_search() : 是否为搜索结果页

is_404() : 是否为 “HTTP 404: Not Found” 错误页

is_paged() : 主页/Category/Archive页是否以多页显示

继续阅读

获取网页内的图片地址 | 打包下载图片

最近开发了一个在线的采集工具,可以根据URL来获取当前页面里的图片信息,比如说图片地址,图片标签里的属性,以及通过打包(zip)的形式下载请求页面中获取到的图片。有兴趣的朋友可以查看一下下面的DEMO页面,来进行采集图片:

http://www.ityizhan.com/demo/download-image/

这个DEMO页面只是实现了最基本的两个部分:采集地址和打包下载。目前尚在测试阶段,还在进行的更新,希望大家发现问题能及时反馈,成为大家采集图片的方便工具。

根据不断的测试,以后还可能增加的新功能有,自动调整图片的大小,设置打包图片的名称规则,合并和分解图片。。。。反正想添加的功能挺多的,有什么好的建议也希望大家能留言。

下面说一下这个工具现有功能的实现方法:

1. 获取地址

这个功能最主要的就是用正则表达式来匹配页面源码里的图片地址了,这里用到得正则表达式是:

/<img.*src="(.*)"\\s*.*>/iU

首页通过PHP自带的读取文件函数来获得请求页面的html代码,然后用正则表达式来匹配里面的src地址,这里有两个注意点:

  • file_get_content 只能获取到静态的页面内容,也就是说如果你在页面里看到的是图片是通过Javascript来展示的,通过这个工具是获取不到图片信息的
  • 有的网站对file_get_content 这个函数做了些限制,如果不是通过浏览器打开的网页,服务器是拒绝请求的,这个时候我们就需要给php 程序添加一个配置信息,让采集的程序能够模拟一个留言器的UA(user agent),具体的做法可以通过下面的代码来实现://现在模拟的是一个Window 环境下的浏览器
    ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)');

继续阅读

基于jQuery的上传插件uploadify

jQuery Uploadify 是一个强有力的而且可以高度自定义的文件上传插件,它是基于jQuery 和 SWFUpload 来开发的,支持进度条显示,实现的效果非常不错。可以见下图:

从Uploadify 的下载页面上,可以看到当前的版本已经是Uploadify-v3.0.0 (Beta),但是还是一个Beta版,所以目前来说网站上的文档主要是针对 uploadify v2.14 的。所以这里就不多介绍老版本的文档了,主要说一下Uploadify3.0 的一些用法。

Uploadify 的v3.0 和老版本还是有很大的差别的,虽然从演示上来看基本上一样,但是jquery调用uploadify的时候,一些很重要的参数名字都变了。在演示上的差别,老版本是把按钮的样式放在flash里,而v3.0把按钮的样式和flash 分开了,定义起来更加自由。

下面来说一下v3.0 的使用方法和有哪些参数上变化: 继续阅读

利用PHP对腾讯微博发布和收听

微博流行已经很久了,在各大门户已经开放注册,功能齐全,甚至有些还开放API,腾讯微博发布出来以后凭借着庞大的用户群,很快也受到了用户的关 注。目前腾讯微博尚处于内测阶段,没有公开的API。很多用户希望能够更新自己其他的微博时,能同时更新自己的腾讯微博,或者通过程序来给多个帐号更新微博内容。其实更新内容并不难,主要是登录问题,登录以后要保存COOKIE,COOKIE存在才可以进行更新微博内容,收听微博等操作。

下面来介绍一下如何通过PHP来进行腾讯微博操作,也可以直接查看演示

如何用PHP登陆微博账户

腾讯的登录需要两个步鄹,第一步是根据自己的QQ号获取验证码,验证地址是:
http://ptlogin2.qq.com/check?uin=@'.$qq.'&appid=46000101
其中$qq代表你的微博帐号,通过这个验证你可以得到如下的结果:
ptui_checkVC('0','!CCQ');
其中!CCQ就是对应的验证码。这是一个随机码,每次访问都会有变化的。第二步就是把用户名,密码和验证码等信息提交到下面的地址: 继续阅读

终于获得了Text-Link-Ad 的第一笔收入

也许经常来这里光顾的朋友应该注意到,网站的右侧的sidebar多了一个新的栏目–“TEXT LINK AD”,这便是本网站在Text Link Ad 卖出的第一个链接。

注册Text Link Ad已经有一年之久了,起初比较关注里面的一举一动,后来渐渐的兴趣就比较消弱了,因为在这一年多的时间里,没有得到过里面的一点反馈,不知道是网站的设置有问题还是网站的内容的问题。可以前不久缺突然收到一封来自Text Link Ad 的邮件,邮件的标题用很醒目的字写着:“Text Link Ad Sold”。 看到这个邮件才让我把失去信心的Text Link Ad 重新拿起来。

如果大家对Text-Link-Ads 感兴趣的话,可以查看《TEXT LINK ADS 网站赚钱

收到广告卖出的邮件是在上个的中旬,因为Text Link Ad里的佣金是按照每个自然月来支付的,那么我上个月中旬开始卖出的广告应该只有半个月的费用,佣金是在每个月的一号进行支付。这里给大家分享一下Text Link Ad卖出广告的状态和自己的一些心得。

首先登录Text Link Ad的网站,然后在左侧的“Money Earned”菜单里可以看到你当前卖出的广告:

继续阅读

jQuery 和 jQueryUI 插件开发的通用框架

jQuery插件开发的通用框架:

关于jQuery插件开发中的重要函数可以参考:jQuery插件开发中几个重要的函数 。这里主要介绍一下jQuery开发通用的一个框架:

;(function($){
$.fn.yourName = function(options){
//各种属性、参数
}
var options = $.extend(defaults, options);
this.each(function(){
//插件实现代码
});
};
})(jQuery);

jQueryUI插件开发的通用框架:

jquery.ui.widget.js提供了一个工厂方法来建立小部件的类,签名如下:
$.widget(String name, Options prototype)
调用建立小部件工厂的方法用来建立和与小部件的实例相互作用
除了由原型提供的参数以后,下面默认的方法对每一个实例都是有效的
* destroy(): 从DOM节点删除这个实例
* option(String key[, String value]): 获取或者设置选项
* enable(): 设置disabled选项为false,这取决于实例选项
* disable(): 设置disabled选项为true,这取决于实例选项
每个实例可用的属性:
* options: 当前小部件实例的所有选项,它是由用户提供的所有设置的一个集合
* element: 是包含一个单独DOM节点的jQuery对象, 它可以通过this.element[0]来访问
继续阅读

jQuery插件开发中几个重要的函数

jQuery.extend(target, [object1], [objectN])
返回值:对象(Object)
描述:合并两个或多个对象的内容到第一个对象
用法:在jQuery1.1.4后改方法新添一个参数 deep
jQuery.extend([deep], target, object1, [objectN])
参数
deep 如果为true,合并就变成递归的合并
target 被扩展的对象,它将会收到新的属性
object1 一个包含了新增属性的对象,它将被合并到target中
objectN 多个新增的属性的对象
当我们提供两个或多个对象的时候,$.extend() 会把所有的对象都合并到目标对象,如果只提供了一个对象,那说明target对象是被省略了的,在这种情况下,jQuery对象假设自己的就是目标对象。

通过这个函数我们可以给jQuery的命名空间里添加新的函数,记住目标对象(第一个参数)将会被修改,并且会从函数中返回,如果我们想保持原有的对象不变,可以通>过传递一个空对象作为目标:
var object = $.extend({}, object1, object2);
默认的情况$.extend()的合并是不会做递归处理的,如果第一个属性是一个对象或者是以个数组的话,它将会被新的对象中相同的属性完全覆盖,而不是被合并,但是通>过给函数的第一个参数设置为true,可以让对象在合并的时候做递归处理