CSS का उपयोग करके होवर पर किसी इमेज पर जूम इफ़ेक्ट बनाना?


87

मैं वर्तमान में अपने चार चित्रों में से एक पर हॉवर पर ज़ूम प्रभाव बनाने की कोशिश कर रहा हूं। समस्या सबसे अधिक है उदाहरण आमतौर पर किसी प्रकार के प्रभाव को लागू करने के लिए तालिकाओं या मुखौटा divs का उपयोग करते हैं।

यहाँ एक उदाहरण है कि औजार मैं चाहते हैं क्या है यह

यह मेरा अब तक का कोड है।

एचटीएमएल

<div id="menu">
<img class ="blog" src="http://s18.postimg.org/il7hbk7i1/image.png" alt="">
<img class ="music" src="http://s18.postimg.org/4st2fxgqh/image.png" alt="">
<img class ="projects" src="http://s18.postimg.org/sxtrxn115/image.png" alt="">
<img class ="bio" src="http://s18.postimg.org/5xn4lb37d/image.png" alt="">
</div>

सीएसएस

#menu {
    max-width: 1200px;
    text-align: center;
    margin: auto;
}

#menu img {
    width: 250px;
    height: 375px;
    padding: 0px 5px 0px 5px;
    overflow: hidden;
}

.blog {
    height: 375px;
    -webkit-transition: all 1s ease;
    -moz-transition: all 1s ease;
    -o-transition: all 1s ease;
    -ms-transition: all 1s ease;
    transition: all 1s ease;
}

.blog:hover {
    cursor: pointer;
    height:475px;
    width: 350px;
}

.music {
    height: 375px;
}

.projects {
    height: 375px;
}

.bio {
    height: 375px;
}

जवाबों:


163

CSS3 transformसंपत्ति का उपयोग करने और उपयोग के बारे में scaleजो बीमार को प्रभाव की तरह ज़ूम देता है, यह ऐसा किया जा सकता है,

एचटीएमएल

<div class="thumbnail">
    <div class="image">
        <img  src="http://placehold.it/320x240" alt="Some awesome text"/>
    </div>
</div>

सीएसएस

.thumbnail {
    width: 320px;
    height: 240px;
}

.image {
    width: 100%;
    height: 100%;    
}

.image img {
    -webkit-transition: all 1s ease; /* Safari and Chrome */
    -moz-transition: all 1s ease; /* Firefox */
    -ms-transition: all 1s ease; /* IE 9 */
    -o-transition: all 1s ease; /* Opera */
    transition: all 1s ease;
}

.image:hover img {
    -webkit-transform:scale(1.25); /* Safari and Chrome */
    -moz-transform:scale(1.25); /* Firefox */
    -ms-transform:scale(1.25); /* IE 9 */
    -o-transform:scale(1.25); /* Opera */
     transform:scale(1.25);
}

यहाँ एक डेमो फिडल है । मैंने इसे सरल बनाने के लिए कुछ तत्वों को हटा दिया, आप हमेशा .imageस्केल की गई छवि के अतिप्रवाह को छिपाने के लिए छिपे हुए अतिप्रवाह को जोड़ सकते हैं ।

zoom संपत्ति केवल IE में काम करती है


14
और "कोड से गहरे जीवन के सबक" पुरस्कार जीतते हुए, आपका सीएसएस जप कर रहा है "सब सहज है, सब सहज है।"
नेरोलकेन

1
आप पिक्सेलेशन को कैसे रोकेंगे?
वाल्टरी

1
@Waltari आपकी छवि का आकार 25% होना चाहिए (वह राशि जो हम ज़ूम इन कर रहे हैं) सामग्री क्षेत्र से बड़ी है, इसलिए यदि थंबनेल 320x240 है और हम 25% तक ज़ूम कर रहे हैं तो छवि 400x300 होनी चाहिए।
मिशेल लेजेल

25

हेयर यू गो।

डेमो

http://jsfiddle.net/27Syr/4/

एचटीएमएल

<div id="menu">

    <div class="fader">
        <div class="text">
            <p>Yay!</p>
        </div>
        <a href="http://stackoverflow.com/questions/15732643/jquery-masonry-and-css3/">
            <img class ="blog" src="http://s18.postimg.org/il7hbk7i1/image.png" alt="">
        </a>
    </div>

    <div class="fader">
        <div class="text">
            <p>Yay!</p>
        </div>
        <a href="http://stackoverflow.com/questions/15732643/jquery-masonry-and-css3/">
            <img class ="blog" src="http://s18.postimg.org/4st2fxgqh/image.png" alt="">
        </a>
    </div>

    <div class="fader">
        <div class="text">
            <p>Yay!</p>
        </div>
        <a href="http://stackoverflow.com/questions/15732643/jquery-masonry-and-css3/">
            <img class ="projects" src="http://s18.postimg.org/sxtrxn115/image.png" alt="">
        </a>
    </div>

    <div class="fader">
        <div class="text">
            <p>Yay!</p>
        </div>
        <a href="http://stackoverflow.com/questions/15732643/jquery-masonry-and-css3/">
            <img class ="blog" src="http://s18.postimg.org/5xn4lb37d/image.png" alt="">
        </a>
    </div>

</div>

सीएसएस

#menu {
    text-align: center; }


.fader {
    /* Giving equal sizes to each element */
    width:    250px;
    height:   375px;

    /* Positioning elements in lines */
    display:  inline-block;

    /* This is necessary for position:absolute to work as desired */
    position: relative;

    /* Preventing zoomed images to grow outside their elements */
    overflow: hidden; }


    .fader img {
        /* Stretching the images to fill whole elements */
        width:       100%;
        height:      100%;

        /* Preventing blank space below the image */
        line-height: 0;

        /* A one-second transition was to disturbing for me */
        -webkit-transition: all 0.3s ease;
        -moz-transition:    all 0.3s ease;
        -o-transition:      all 0.3s ease;
        -ms-transition:     all 0.3s ease;
        transition:         all 0.3s ease; }

        .fader img:hover {
            /* Making images appear bigger and transparent on mouseover */
            opacity: 0.5;
            width:   120%;
            height:  120%; }

    .fader .text {
        /* Placing text behind images */
        z-index: -10;     

        /* Positioning text top-left conrner in the middle of elements */
        position: absolute;
        top:      50%;
        left:     50%; }

        .fader .text p {
            /* Positioning text contents 50% left and top relative
               to text container's top left corner */
            margin-top:  -50%; 
            margin-left: -50%; }

सुझाव

इसके बजाय .fader { inline-block; }कुछ ग्रिड प्रणाली का उपयोग करने पर विचार करें। आपकी वरीयता की तकनीक के आधार पर, आप फाउंडेशन , सूसी , चिनाई या उनके विकल्प पर जा सकते हैं ।



16

मुझे बैकग्राउंड इमेज का उपयोग करना पसंद है। मुझे यह आसान और अधिक लचीला लगता है:

डेमो

सीएसएस:

#menu {
    max-width: 1200px;
    text-align: center;
    margin: auto;
}
.zoomimg {
    display: inline-block;
    width: 250px;
    height: 375px;
    padding: 0px 5px 0px 5px;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center center;
    transition: all .5s ease;
}
.zoomimg:hover {
    cursor: pointer;
    background-size: 150% 150%;
}
.blog {
    background-image: url(http://s18.postimg.org/il7hbk7i1/image.png);
}
.music {
    background-image: url(http://s18.postimg.org/4st2fxgqh/image.png);
}
.projects {
    background-image: url(http://s18.postimg.org/sxtrxn115/image.png);
}
.bio {
    background-image: url(http://s18.postimg.org/5xn4lb37d/image.png);
}

HTML:

<div id="menu">
    <div class="blog zoomimg"></div>
    <div class="music zoomimg"></div>
    <div class="projects zoomimg"></div>
    <div class="bio zoomimg"></div>
</div>

DEMO 2 ओवरले के साथ


मैं इसके लिए एक पृष्ठभूमि छवि का उपयोग करने की अनुशंसा नहीं करूंगा, आप सभी अद्भुत छवि संबंधित एसईओ को ढीला करने जा रहे हैं जो छवि टैग और संपूर्ण विशेषताओं का उपयोग करके आता है।
मिशेल लेजेल

मुझे लगता है कि यह बहुत अच्छा है, लेकिन आप img टैग की सभी उपयोगिता खो देते हैं।
डैनियल नाब सेप

यदि छवि एसईओ के लिए प्रासंगिक नहीं है, तो मुझे यह समाधान क्लीनर मिला।
NLemay

7

सीधे शब्दों में:

.grow { transition: all .2s ease-in-out; }

यह तत्व को सीएसएस के माध्यम से एक एनीमेशन आवंटित करने की अनुमति देगा।

.grow:hover { transform: scale(1.1); }

यह इसे विकसित करेगा!


7
.item:hover img 
{
 -moz-transform: scale(1.3);
 -webkit-transform: scale(1.3);
 transform: scale(1.3);
}

इस तरह आप साधारण एनीमेशन के साथ किसी भी छवि को ज़ूम कर सकते हैं। अगर आपको एक संपूर्ण ट्यूटोरियल की आवश्यकता है तो एक आधिकारिक ट्यूटोरियल है: http://talkerscode.com/webtricks/image-zoom-in-on-hover-using-css3.php


3

समाधान 1: आप ज़ूम-मास्टर डाउनलोड कर सकते हैं ।
समाधान 2: यहां जाएं ।
समाधान 3: आपके अपने कोड

.hover-zoom {
    -moz-transition:all 0.3s;
    -webkit-transition:all 0.3s;
     transition:all 0.3s
 }
.hover-zoom:hover {
    -moz-transform: scale(1.1);
    -webkit-transform: scale(1.1);
     transform: scale(1.5)
 }
<img class="hover-zoom"  src="https://i.stack.imgur.com/ewRqh.jpg" 
     width="100px"/>



0
 -webkit-transition: all 1s ease; /* Safari and Chrome */
-moz-transition: all 1s ease; /* Firefox */
-ms-transition: all 1s ease; /* IE 9 */
-o-transition: all 1s ease; /* Opera */
transition: all 1s ease;  

केवल उपरोक्त बदलावों पर एक नोट बनाना चाहते हैं

 -webkit-transition: all 1s ease; /* Safari and Chrome */
transition: all 1s ease;

और -ms- निश्चित रूप से IE 9 के लिए काम नहीं करता है मुझे नहीं पता कि आपको वह विचार कहां से मिला है।


IE10 (संक्रमण का समर्थन करने के लिए IE का पहला स्थिर संस्करण) -ms- उपसर्ग, पूर्व अस्थिर बिल्ड की आवश्यकता नहीं है और वही -moz- और -o- के लिए जाता है, वर्तमान संस्करणों की आवश्यकता नहीं है लेकिन पिछले बिल्ड करते हैं।
मिशेल लैजेल

-ms- पूरी तरह से आवश्यक नहीं है क्योंकि यह किसी भी IE ब्राउज़रों के लिए काम करने के लिए संक्रमण प्राप्त करने के लिए समाधान की पेशकश नहीं करता है। आप विशिष्ट नियम प्राप्त करने के लिए उपसर्ग का उपयोग करते हैं ताकि आप उन्हें मज़े के लिए फेंक न सकें।
DCdaz

-ms- एक वेंडर उपसर्ग है जिसे वे IE 10 की रिलीज पर छोड़ देते हैं, जिसका अर्थ है कि पिछले संस्करण जैसे IE 9 अभी भी विक्रेता उपसर्ग का उपयोग करते हैं, बहुत से लोग उदास रूप से IE 9 का उपयोग इस दिन करते हैं, अब जब यह transitionसंपत्ति में आता है तो IE आधिकारिक तौर पर लाया transitionजाता है। IE 10 तो इसके लिए इसकी आवश्यकता नहीं है, हालांकि यदि आप 100% बनना चाहते हैं तो IE 9 के संस्करण हैं जो अस्थिर हैं जो उपयोग करते हैं -ms-transition
मिशेल लैजेल

1
यह गलत संक्रमण विक्रेता उपसर्ग के साथ IE9 में काम नहीं करता है। -ms- संक्रमणों के लिए पूरी तरह से व्यर्थ उपसर्ग है।
डीसीडाज़

1
क्या आप देख रहे हैं-कहीं भी -ओए- ओपरा मोबाइल पर वास्तव में बदलाव नहीं करते हैं, इसलिए इसका क्रमहीन और -मोज़- त्वरित क्रमिक 2011 के रिलीज़ के लिए व्यर्थ है क्योंकि आप सचमुच एक छोटे से मुट्ठी भर उपयोगकर्ता के बारे में बात कर रहे हैं जो करेगा 100% देव और संस्थान एक सामान्य उपयोगकर्ता के रूप में वेब का उपयोग नहीं कर रहे हैं, लेकिन मंच के प्रयोजनों के लिए। लेकिन अभी भी मुख्य तर्क बना हुआ है-पूरी तरह से बेकार है और थोड़ी सी भी आवश्यकता नहीं है। -moz- या -o- के लिए कोई ज़रूरत नहीं है और -ms के लिए 100% कोई ज़रूरत नहीं है-
DCdaz

0

    .img-wrap:hover img {
        transform: scale(0.8);
    }
    .img-wrap img {
        display: block;
        transition: all 0.3s ease 0s;
        width: 100%;
    }
    <div class="img-wrap">
    <img src="http://www.sampleimages/images.jpg"/> // Your image
    </div>

यह कोड केवल ज़ूम-आउट प्रभाव के लिए है। अपनी शैली के अनुसार div "img-wra" सेट करें और उपरोक्त शैली परिणाम ज़ूम-आउट प्रभाव डालें। ज़ूम-इन प्रभाव के लिए आपको स्केल मान बढ़ाना होगा (जैसे: ज़ूम के लिए- में, परिवर्तन का उपयोग करें: पैमाने (1.3);


0
  <div class="item">
  <img src="yamahdi1.jpg" alt="pepsi" width="50" height="58">
  <img src="yamahdi.jpg" alt="pepsi" width="50" height="58">
  <div class="item-overlay top"></div>

सीएसएस:

.item img {

  -moz-transition: all 0.3s;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.item img:hover {
  -moz-transform: scale(1.1);
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}

0

@import url('https://fonts.googleapis.com/css?family=Muli:200,300,400,700&subset=latin-ext');
 body{ font-family: 'Muli', sans-serif; color:white;}
 #lists {
   width: 350px;
   height: 460px;
   overflow: hidden;
   background-color:#222222;
   padding:0px;
   float:left;
    margin: 10px;
 }
 
 .listimg {
   width: 100%;
   height: 220px;
   overflow: hidden;
   float: left;
  
 }
  #lists .listimg img {
   width: 350px;
   height: 220px;
   -moz-transition: all 0.3s;
   -webkit-transition: all 0.3s;
   transition: all 0.3s;
 }
 #lists:hover{cursor: pointer;}
 #lists:hover > .listimg img {
   -moz-transform: scale(1.3);
   -webkit-transform: scale(1.3);
   transform: scale(1.3);
   -webkit-filter: blur(5px);
   filter: blur(5px);
 }

#lists h1{margin:20px; display:inline-block; margin-bottom:0px; }
#lists p{margin:20px;}

.listdetail{ text-align:right; font-weight:200; padding-top:6px;padding-bottom:6px;}
<div id="lists">
<div class="listimg">
  <img src="https://lh3.googleusercontent.com/WeEw5I-wk2UO-y0u3Wsv8MxprCJjxTyTzvwdEc9pcdTsZVj_yK5thdtXNDKoZcUOHlegFhx7=w1920-h914-rw">
</div>
<div class="listtext">
<h1>Eyes Lorem Impsum Samet</h1>
<p>Impsum Samet Lorem</p>
</div>
<div class="listdetail">
<p>Click for More Details...</p>
</div>
</div>

<div id="lists">
<div class="listimg">
  <img src="https://lh4.googleusercontent.com/fqK7aQ7auobK_NyXRYCsL9SOpVj6SoYqVlgbOENw6IqQvEWzym_3988798NlkGDzu0MWnR-7nxIhj7g=w1920-h870-rw">
</div>
<div class="listtext">
<h1>Two Frogs Lorem Impsum Samet</h1>
<p>Impsum Samet Lorem</p>
</div>
<div class="listdetail">
<p>More Details...</p>
</div>
</div>


0
<!DOCTYPE html>
<html>
<head>
<style>
.zoom {

  overflow: hidden;
}

.zoom img {
  transition: transform .5s ease;
}
.zoom:hover img {
  transform: scale(1.5);
}

</style>
</head>
<body>

<h1>Image Zoom On Hover</h1>
<div class="zoom">
  <img src="/image-path-url" alt="">
</div>

</body>
</html>

निम्न गुणवत्ता पोस्ट से अपना उत्तर निकालने के लिए कुछ स्पष्टीकरण जोड़ें।
हर्षा बियानी

-3

Jquery.zbox.css और jquery.zbox.js के साथ jQuery जावास्क्रिप्ट पुस्तकालय को अपने वेबपेज पर जोड़ें।

<link rel="stylesheet" href="jquery.zbox.css">
<script src="jquery.min.js"></script>
<script src="jquery.zbox.min.js"></script>

वेब पेज में पूर्ण आकार की छवियों की ओर इशारा करते हुए लिंक के साथ थंबनेल का एक समूह जोड़ें।

<a class="zb" rel="group" href="1.png" title="Image 1">
  <img src="thumb1.png">
</a>
<a class="zb" rel="group" href="2.png" title="Image 2">
  <img src="thumb2.png">
</a>
<a class="zb" rel="group" href="3.png" title="Image 3">
 <img src="thumb3.png">
</a>

तैयार दस्तावेज़ पर फ़ंक्शन को कॉल करें। बस।

दृश्य स्रोत में करें:

$(".zb").zbox();

2
ओपी ने सीएसएस में ऐसा करने का तरीका पूछा। एक jQuery का उत्तर यहाँ मददगार नहीं है।
टायलरह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.