Skip to main content

Clear Lens - JQuery Plugin


This is my New jQuery Plugin.  You can find the working example at http://jsfiddle.net/ajai/k8Ube/
Hope it will be useful to some one.... 

I have used "pixastic" for image processing. 

To implement the plugin you have to include the pixastic library. and call the plugin in $(window).load event, Beacuse for image processing first the image should be loaded. Hope you all know $(window).load will be triggered after all the assets are loaded.

DEMO

Fork this on GitHub

How to use?

It is very simple to implement the plugin
1. include you jQuery 
2. include Pixastic Library
3. include the plugin code
4. Add attribute fitler="blur" for images that you want to apply
5. on $(window).load Event call the following code

$('img').blurLens();
or
$('img').blurLens({
    width: 200,
    height: 200,
    blur: 5
});

width - Width of lens
height - Height of lens
blur - Blur Amount

JQuery 

(function ($) {
    $.fn.blurLens = function (lensproperty) {

        return $(this).each(function (ind, elm) {
            if ($(elm).attr('filter') == 'blur') {
                var w = 50;
                var h = 50;
                var blur = 2;

                if (lensproperty && lensproperty.width) w = lensproperty.width;
                if (lensproperty && lensproperty.height) h = lensproperty.height;
                if (lensproperty && lensproperty.blur) blur = lensproperty.blur;

                $(elm).wrap('
'); var wrapper = $('
').width($(elm).width()).height($(elm).height()); wrapper.appendTo($(elm).parent()); var lens = $('
').css('background', 'url(' + $(elm).attr('src') + ') no-repeat 0 0').width(w).height(h); lens.appendTo(wrapper); var endL = $(wrapper).width() - w; var endT = $(wrapper).height() - h - 3; $(wrapper).on('mousemove', function (e) { lens.show(); var l = e.pageX - $(this).offset().left; var t = e.pageY - $(this).offset().top; lens.css({ left: l + 'px', top: t + 'px', 'background-position': '-' + l + 'px -' + t + 'px' }); }); $(wrapper).on('mouseout', function (e) { lens.hide(); }); $(elm).parent().css('visibility', 'visible'); $(elm).pixastic("blurfast", { amount: blur }); } }); } })(jQuery);

CSS

.blur {
    visibility: hidden;
    position:relative;
}
.blur .lens-wrap {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    z-index:200;
    overflow:hidden;
}
.blur .lens {
    display:none;
    width:50px;
    height: 50px;
    border:1px solid rgba(0, 0, 0, 0.5);
    box-shadow:0px 0px 10px #333;
    position:absolute;
    top:0;
    left:0;
    /*border-radius:100%;*/
    z-index:100;
    box-sizing:border-box;
    -moz-box-sizing:border-box;
    -webkit-box-sizing:border-box;
}
[filter="blur"] {
    visibility:hidden;
}

Comments

Popular posts from this blog

Random Bouncing Ball Animation

Simple animation of random balls that bounces within the screen Source: #include<stdio.h> #include<graphics.h> #include<conio.h> #include<dos.h> #include<math.h> void drawBall(struct ball *b, int color); struct ball{ int x, y; int dx, dy; int radius; }; void main() { int gd=0, gm=VGAHI; int i; struct ball b[10]; initgraph(&gd, &gm, ""); for(i=1;i<=15;i++){ b[i].radius = rand()%20; b[i].x=rand()%getmaxx(); b[i].y=rand()%getmaxy(); b[i].dx=2; b[i].dy=4; } while(!kbhit()) { delay(5); cleardevice(); for(i=1;i<=15;i++) drawBall(&b[i],i); } closegraph(); } void drawBall(struct ball *b, int color){ setfillstyle(1,color); setcolor(color); fillellipse(b->x, b->y, b->radius, b->radius); if(b->x+b->radius > getmaxx() || b->x-b->radius<0) b->dx = -b->dx; if(b->y+b->radius > getmaxy() || b->y-b->radius<0) b->dy = -b->dy; b->x+=b-...

Simple Animation Using C

Here i have used fillpoly function to draw the object body and used fillellipse function to draw tier. animation is done by looping through the objects x & y position until user hits a key. Keypress event is achived  by using kbhit function. Smoothness of animation is controlled by delay function. Change the delay values to change the animation speed Source: #include<stdio.h> #include<conio.h> #include<graphics.h> #include<dos.h> void main() { int gd=DETECT,gm,i=-300,j; int poly[16]={100,100,250,100,250,50,300,50,325,90,325,140,100,140,100,100}; int tpoly[16]={100,100,250,100,250,50,300,50,325,90,325,140,100,140,100,100}; initgraph(&gd,&gm,""); getch(); while(!kbhit()) { for(j=0;j<16;j+=2) { poly[j]=tpoly[j]+i; } fillpoly(8,poly); setfillstyle(5,7); bar(275+i,60,295+i,85); setfillstyle(5,8); fillellipse(140+i,140,20,20); fillellipse(280+i,140,20,20); setfillstyle(1,0); fillellipse(140+i,140,10,10); fillellipse(280+i,140,10...

Things you may not know about CSS

Grammatical error like style using CSS: .grammar{ -moz-text-decoration-color: green; -moz-text-decoration-line: underline; -moz-text-decoration-style: wavy; text-decoration-color: green; text-decoration-line: underline; text-decoration-style: wavy; } Output : CSS 'empty-cells' Property table{ empty-cells:hide; }    CSS @supports  Usually we do CSS feature-test using JavaScript. Now it can be done in CSS with a new property '@supports' . So for Firefox 22+ , Chrome 28+, Opera 12.1+ supports this feature. So we can look forward to using it soon! Example: /* basic usage */ @supports(prop:value) { /* more styles */ } /* real usage */ @supports (display: flex) { div { display: flex; } } /* testing prefixes too */ @supports (display: -webkit-flex) or (display: -moz-flex) or (display: flex) { section { display: -webkit-flex; display: -moz-flex; display: f...