কীভাবে চিত্রগুলি ওভারলে করা যায়


127

আমি সিএসএস ব্যবহার করে অন্যের সাথে একটি চিত্রকে ওভারলে করতে চাই। এর উদাহরণ প্রথম চিত্র (যদি আপনি পছন্দ করেন তবে ব্যাকগ্রাউন্ড) কোনও পণ্যের থাম্বনেইল লিঙ্ক হবে, লিংকটি লাইটবক্স / পপআপ খোলার সাথে চিত্রটির বৃহত সংস্করণ প্রদর্শিত হবে।

এই লিঙ্কযুক্ত চিত্রের উপরে আমি একটি ম্যাগনিফাইং গ্লাসের একটি চিত্র চাই, যাতে লোকেরা এই চিত্রটি বড় করার জন্য ক্লিক করা যায় (দৃশ্যত এটি ম্যাগনিফাইং গ্লাস ছাড়া স্পষ্ট নয়) obvious


7
আপনার প্লাগইন প্রশ্নের উত্তর দেয় না, এবং কিছুটা সম্পর্কিত হওয়ার জন্য, যা চাওয়া হয়েছিল তা নয়।
বাশেভিস

উত্তর:


108

আমি একটি প্রকল্পে ঠিক এই কাজটি সম্পন্ন করেছি। এইচটিএমএল দিকটি কিছুটা দেখতে লাগল:

<a href="[fullsize]" class="gallerypic" title="">
  <img src="[thumbnail pic]" height="90" width="140" alt="[Gallery Photo]" class="pic" />
  <span class="zoom-icon">
      <img src="/images/misc/zoom.gif" width="32" height="32" alt="Zoom">
  </span>
</a>

তারপরে CSS ব্যবহার করুন:

a.gallerypic{
  width:140px;
  text-decoration:none;
  position:relative;
  display:block;
  border:1px solid #666;
  padding:3px;
  margin-right:5px;
  float:left;
}

a.gallerypic span.zoom-icon{
  visibility:hidden;
  position:absolute;
  left:40%;
  top:35%;
  filter:alpha(opacity=50);
  -moz-opacity:0.5;
  -khtml-opacity: 0.5;
  opacity: 0.5;
}

a.gallerypic:hover span.zoom-icon{
  visibility:visible;
}

আমি সেখানে অনেকগুলি নমুনা সিএসএসে রেখেছি যাতে আপনি দেখতে পারেন যে আমি কীভাবে স্টাইলটি করার সিদ্ধান্ত নিয়েছি। দ্রষ্টব্য আমি অস্বচ্ছতাটি কমিয়ে দিয়েছি যাতে আপনি ম্যাগনিফাইং গ্লাসটি দেখতে পান।

আশাকরি এটা সাহায্য করবে.

সম্পাদনা: আপনার উদাহরণের জন্য স্পষ্ট করতে - আপনি চাইলে আপনি এড়িয়ে যেতে পারেন visibility:hidden;এবং ফাঁসিটি মেরে ফেলতে :hoverপারেন, আমি কেবল এটিই করেছি।


1
হ্যাঁ, আমি ভেবেছিলাম এটি সম্ভবত একটি পরম অবস্থান সমাধান হিসাবে শেষ হবে। আমার পছন্দ করার কারণ হ'ল মূল চিত্রটি একটি চিত্র থেকে যায়, এটি কোনও পটভূমির চিত্র হয় না।
রবিন বার্নেস

2
টিম কে: সিএসএস ব্যতীত আপনার কোডটি দুর্দান্ত দেখাচ্ছে। ইঞ্জিন ডান থেকে বামে CSS পড়ছে reads আপনি যখন 'এগ্যালারিপিক' ব্যবহার করেন এটি প্রথমে 'গ্যালারীপিক'-এর জন্য দেখায় এবং তারপরে এটি পরীক্ষা করে যে' গ্যালারীপিক'-এর 'একটি' পূর্বপুরুষ রয়েছে কিনা। এটি সমাধানের জন্য, 'a' কে বাইরে রেখে সরান, যাতে আপনি '.গ্যালারিপিক' পান। পূর্ববর্তী 'ক' এর দরকার নেই।
মার্টিন ভিলা

1
আমার মনে হয় এমন একটি সমস্যা রয়েছে যা অমীমাংসিত রয়ে গেছে, যা হ'ল আপনাকে প্রদর্শন ব্যবহার করতে বাধ্য করা হয়েছে: ব্লক (যেখানে চিত্রগুলি ডিফল্টরূপে ইনলাইন থাকে)।
পিটার তাসেং


11

অতিরিক্ত ট্যাগ সহ সামগ্রীতে পরিবর্তন না করে সিএসএসের সাহায্যে এটি করার একটি সহজ উপায় এখানে (কোড এবং উদাহরণ সহ) দেখানো হয়েছে: http://soukie.net/2009/08/20/typography- এবং-css/#example

এটি কাজ করে, যতক্ষণ না পিতামহুল উপাদান স্থির অবস্থান ব্যবহার করে না। কেবল এটি আপেক্ষিক অবস্থানের সাথে সেট করা কৌশলটি করে। এছাড়াও, আইই <8 8 টি সমর্থন করে না : নির্বাচক বা সামগ্রীগুলির আগে


3
এটি আসলে খুব ভাল কাজ করে, মার্কআপটি কোনও পরিবর্তন না করে এটি করতে সক্ষম হওয়ায় দুর্দান্ত!
axxxman

3
দয়া করে এই URL টি থেকে কোডটি পেস্ট করুন, যদি এটি কখনও কমে না যায়। এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। কোডটি হল: পি p অবস্থান: আপেক্ষিক; প্রদর্শন ব্লক; } পি: পরে {সামগ্রী: ইউআরএল (ম্যাগনিফাই.পিএনজি); অবস্থান: পরম; ডান: 20px; শীর্ষ: 20px;
এরিক স্টেইনবোন

3

এখানে আমি সম্প্রতি এটি কীভাবে করেছি। শব্দার্থগতভাবে নিখুঁত নয়, তবে কাজটি সম্পন্ন হয়।

<div class="container" style="position: relative">
<img style="z-index: 32; left: 8px; position: relative;" alt="bottom image" src="images/bottom-image.jpg">
<div style="z-index: 100; left: 72px; position: absolute; top: 39px">
<img alt="top image" src="images/top-image.jpg"></div></div>

3

: আপনি এই টিউটোরিয়াল চেক আউট করতে চাইতে পারেন http://www.webdesignerwall.com/tutorials/css-decorative-gallery/

এতে লেখক একটি ওভারলেলিং চিত্র যুক্ত করতে একটি ফাঁকা স্প্যান উপাদান ব্যবহার করে। আপনি যদি আপনার কোডটি যথাসম্ভব পরিষ্কার রাখতে চান তবে আপনি স্প্যান উপাদানগুলিকে ইনজেক্ট করতে jQuery ব্যবহার করতে পারেন। উপরোক্ত নিবন্ধে একটি উদাহরণও দেওয়া হয়েছে।

আশাকরি এটা সাহায্য করবে!

-Dave


1

আপনি যদি কেবল হোভারে ম্যাগনিফাইং গ্লাস চান তবে আপনি ব্যবহার করতে পারেন

a:hover img { cursor: url(glass.cur); }

http://www.javascriptkit.com/dhtmltutors/csscursors.shtml

আপনি যদি এটি স্থায়ীভাবে চান তবে আপনার সম্ভবত এটি মূল থাম্বনেইলে অন্তর্ভুক্ত করা উচিত, বা এটি HTML এ যুক্ত করার পরিবর্তে জাভাস্ক্রিপ্ট ব্যবহার করে যুক্ত করা উচিত (এটি নিখুঁত স্টাইল এবং বিষয়বস্তুতে থাকা উচিত নয়)।

আপনি যদি জাভাস্ক্রিপ্টের পাশে সহায়তা চান তবে আমাকে জানান।



1

আমরা যা চাই তা সন্তানের উপরে পিতামাতার। এইভাবে আপনি এটি করেন।

আপনি করা imgমধ্যে spanসেট, z-index & positionউভয় উপাদানের জন্য এবং অতিরিক্ত displayবিঘত জন্য। হোভার যুক্ত করুন spanযাতে আপনি এটি পরীক্ষা করতে পারেন এবং এটি পেয়েছেন!

এইচটিএমএল:

<span><img src="/images/"></span>

সিএসএস

span img {
    position:relative;
    z-index:-1;
}
span {
    position:relative;
    z-index:initial;
    display:inline-block;
}
span:hover {
    background-color:#000;
}

0

আপনি <img>ট্যাগটি না ব্যবহার করেন , যা নিজেই একটি চিত্র প্রদর্শন করে, আপনি একা খাঁটি সিএসএস দিয়ে এটি অর্জন করতে পারবেন না। আপনার পাশাপাশি দু'টি এইচটিএমএল উপাদানগুলিরও প্রয়োজন হবে - প্রতিটি ছবির জন্য একটি করে। এটি কারণ যে আপনি সিএসএসের মাধ্যমে কোনও উপাদান প্রদর্শন করার একমাত্র উপায় background-imageসম্পত্তি সহ, এবং প্রতিটি উপাদানটিতে কেবল একটি পটভূমি চিত্র থাকতে পারে। আপনি কোন দুটি উপাদান নির্বাচন করেন এবং কীভাবে আপনি এগুলি স্থিত করেন তা আপনার উপর নির্ভর করে। আপনি কীভাবে একটির এইচটিএমএল উপাদানকে অন্যের উপরে স্থাপন করতে পারেন তার অনেকগুলি উপায় রয়েছে।


যদি আপনি ব্যবহার করেন: পূর্বে বা: সিউডো-নির্বাচকদের পরে আপনি কেবল জাভাক্রিপ্ট ব্যবহার করে এইচটিএমএল যুক্ত করতে পারেন। এই উত্তর stackoverflow.com/a/3098231/272208 উত্স কোডে দ্বিতীয় এইচটিএমএল উপাদান যুক্ত না করে একটি উপায় দেখায়
জেসিকা ব্রাউন

0

কোনও চিত্রের লিঙ্কের উপর একটি আধা-স্বচ্ছ পটভূমি নিয়ে কেন্দ্রে ওভারলে চিত্র প্রদর্শন করার জন্য এখানে একটি ভাল কৌশল:

এইচটিএমএল

<div class="image-container">
    <a class="link" href="#" >  
        <img class="image" src="/img/thumbnail.png"/>
        <span class="overlay-image"><img src="/img/overlay.png"></span>
    </a>    
</div>

সিএসএস

div.image-container{
    position: relative;
}
a.link{
    text-decoration: none;  
    position: relative;
    display: block;
}

a.link span.overlay-image{
    visibility: hidden;
    position: absolute;
    left: 0px;
    top: 0px;
    bottom: 0px;
    right: 0px;
    background-color: rgba(0,0,0,0.2); /* black background with 20% alpha */
}

a.link span.overlay-image:before {    /* create a full-height inline block pseudo=element */
    content: ' ';
    display: inline-block;
    vertical-align: middle;  /* vertical alignment of the inline element */
    height: 100%;   
}

a.link:hover span.overlay-image img{
    display: inline-block;  
    vertical-align: middle;     
}

a.link:hover span.overlay-image{
    visibility: visible;
}

0

এখানে আধা স্বচ্ছ পটভূমি সহ একটি জিকুয়ের প্রযুক্তি রয়েছে Techn

এইচটিএমএল

<html>
<head>
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" title="no title" charset="utf-8">
    <title>Image Gallery</title>
</head>
<body>
    <h1>Image Gallery</h1>

    <ul id="imageGallery">
        <li><a href="images/refferal_machine.png"><img src="images/refferal_machine.png" width="100" alt="Refferal Machine By Matthew Spiel"></a></li>
        <li><a href="images/space-juice.png"><img src="images/space-juice.png" width="100" alt="Space Juice by Mat Helme"></a></li>
        <li><a href="images/education.png"><img src="images/education.png" width="100" alt="Education by Chris Michel"></a></li>
        <li><a href="images/copy_mcrepeatsalot.png"><img src="images/copy_mcrepeatsalot.png" width="100" alt="Wanted: Copy McRepeatsalot by Chris Michel"></a></li>
        <li><a href="images/sebastian.png"><img src="images/sebastian.png" width="100" alt="Sebastian by Mat Helme"></a></li>
        <li><a href="images/skill-polish.png"><img src="images/skill-polish.png" width="100" alt="Skill Polish by Chris Michel"></a></li>
        <li><a href="images/chuck.png"><img src="images/chuck.png" width="100" alt="Chuck by Mat Helme"></a></li>
        <li><a href="images/library.png"><img src="images/library.png" width="100" alt="Library by Tyson Rosage"></a></li>
        <li><a href="images/boat.png"><img src="images/boat.png" width="100" alt="Boat by Griffin Moore"></a></li>
        <li><a href="images/illustrator_foundations.png"><img src="images/illustrator_foundations.png" width="100" alt="Illustrator Foundations by Matthew Spiel"></a></li>
        <li><a href="images/treehouse_shop.jpg"><img src="images/treehouse_shop.jpg" width="100" alt="Treehouse Shop by Eric Smith"></a></li>
    </ul>

    <script src="http://code.jquery.com/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/app.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

সিএসএস

/** Start Coding Here **/
#overlay {
  background:rgba(0,0,0,0.7);
  width:100%;
  height:100%;
  position:absolute;
  top:0;
  left:0;
  display:none;
  text-align:center;
}

#overlay img {
 margin-top: 10%; 
}

#overlay p {
 color:white; 
}

app.js

var $overlay = $('<div id="overlay"></div>');
var $image = $("<img>");
var $caption = $("<p></p>");

// 1. Capture the click event on a link to an image
$("#imageGallery a").click(function(event){
  event.preventDefault();

  var imageLocation = $(this).attr("href");

  // 1.1 Show the overlay.
  $overlay.show();

  // 1.2 Update overlay with the image linked in the link
  $image.attr("src", imageLocation);

  // 1.3 Get child's alt attribute and set caption
  var captionText = $(this).children("img").attr("alt");
  $caption.text(captionText);


 // 2. Add overlay
 $("body").append($overlay);

    // 2.1 An image to overlay
    $overlay.append($image);

    // 2.2 A caption to overlay
    $overlay.append($caption);

});

//When overlay is clicked
$overlay.click(function(){
  //Hide the overlay
  $overlay.hide();
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.