কীভাবে পেজ লোডে jQuery ফেন্সিবক্স চালু করবেন?


96

আমি পৃষ্ঠা লোডে একটি ফেন্সিবক্স (উদাঃ মডেল বা হালকা বাক্সের ফ্যান্সিবক্সের সংস্করণ) চালু করতে চাই । আমি এটি একটি লুকানো অ্যাঙ্কর ট্যাগের সাথে আবদ্ধ করতে পারি এবং জাভাস্ক্রিপ্টের মাধ্যমে সেই অ্যাঙ্কর ট্যাগটির ক্লিক ইভেন্টটি ফায়ার করতে পারি, তবে আমি বরং কেবল ফ্যান্সিবক্সটি সরাসরি চালু করব এবং অতিরিক্ত অ্যাঙ্কর ট্যাগটি এড়াতে চাই।


আপনি যদি অফিশিয়াল ফেন্সিবক্স ওয়েব সাইটে যান ( fancybox.net ) তাদের একটি স্বয়ংক্রিয় পপআপ রয়েছে, সুতরাং তারা কীভাবে এটি করেছে তা দেখতে তাদের পৃষ্ঠার উত্সটি পরীক্ষা করতে পারেন (ইঙ্গিত: গৃহীত উত্তরের মতো নয়)
নিপ্পিসৌরাস

15
অন্যের জন্য কিছু সময় বাঁচানোর জন্য - $ (ফাংশন () {$ .fancybox ('<div> আমাকে পরিবর্তন করুন </ div>', {প্যাডিং: 20});});
নকিব 3ro

উত্তর:


163

ফ্যান্সিবক্স বর্তমানে স্বয়ংক্রিয়ভাবে চালু হওয়ার কোনও উপায় সমর্থন করে না। আমি যে কাজটি করতে পেরেছিলাম তার চারপাশের কাজটি একটি লুকানো অ্যাঙ্কর ট্যাগ তৈরি করছে এবং এটির ক্লিক ইভেন্টটি ট্রিগার করছে। ক্লিক ইভেন্টটি ট্রিগার করার জন্য আপনার কলটি jQuery এবং Fancybox জেএস ফাইল অন্তর্ভুক্ত করার পরে অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন। আমার ব্যবহৃত কোডটি নিম্নরূপ:

এই নমুনা স্ক্রিপ্টটি সরাসরি এইচটিএমএলে এম্বেড করা থাকে তবে এটি কোনও জেএস ফাইলের মধ্যে অন্তর্ভুক্তও হতে পারে।

<script type="text/javascript">
    $(document).ready(function() {
        $("#hidden_link").fancybox().trigger('click');
    });
</script>

4
মাত্র একটি এফওয়াইআই $ (ডকুমেন্ট)। প্রস্তুত (ফাংশন () {$ ("# লুকানো_লিংক") f হিসাবে একই: ফাংশন LaunchFancyBox () {$ ("# লুকানো_লিঙ্ক")। fancybox ()। ট্রিগার ('ক্লিক'); ; $ (ডকুমেন্ট) .ডিডি (LaunchFancyBox ());
মার্ক শুলথিস

4
যেমন $(document).ready(LaunchFancyBox());হওয়া উচিত তেমনি $(document).ready(LaunchFancyBox);। (শেষে ফাংশন কল অভাব নোট করুন)।
অ্যাডাম লুটার

আমি এটি চেষ্টা করেছিলাম, কিন্তু সাফল্য ছাড়াই। আমি আয়াক্স মাধ্যমে বিষয়বস্তু লোড করতে তারপর আমি $ .fancybox (কল {... বিষয়বস্তু ক্ষণস্থায়ী ছিল।
giubueno

@ ব্লগার আপনার সমাধান $ ("# লুকানো_ লিঙ্ক") f। Fancybox ()। ট্রিগার ('ক্লিক করুন'); আমার জন্য নিখুঁত কাজ করে।
মুকেশ

66

এই ফাংশনটি ডকুমেন্টে প্রস্তুত করে আমি এটি কাজ করতে পেরেছি:

$(document).ready(function () {
        $.fancybox({
            'width': '40%',
            'height': '40%',
            'autoScale': true,
            'transitionIn': 'fade',
            'transitionOut': 'fade',
            'type': 'iframe',
            'href': 'http://www.example.com'
        });
});

এটি আমার পক্ষে কার্যকর হয়নি কারণ href প্যারামিটারটি হ্যান্ডেল করার ক্ষেত্রে কিছু ভুল হয়ে যায়। "অপেক্ষা" অ্যানিমেশন চিরকালের জন্য প্রদর্শিত হয়।
বোরিস ভ্যান শুটেন

4
এটি লক্ষণীয় যে এটিকে এমন পদ্ধতি বলে মনে হয় যা ফ্যান্সিবক্স তাদের বিকাশ করে। আপনি যদি ফ্যান্সিবক্স ওয়েব সাইটে যান ( ফিনসি বক্সবোন.নেট ) আপনার একটি মডেল ডায়লগ দেখা উচিত যা আপনাকে বলবে যে "ফ্যান্সিবক্স 2 মুক্তি পেয়েছে!" ... আপনি যদি সেই পৃষ্ঠার উত্সটি লক্ষ্য করেন তবে দেখতে পাবেন যে তারা এই উত্তরে বর্ণিত কৌশলটি ব্যবহার করেছে।
নিপ্পিসৌরাস

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত! গৃহীত সমাধানটি কাজ করছে, তবে কোনও লুকানো অ্যাঙ্কর যুক্ত করা যার উপরে আপনি কোনও ক্লিক ইভেন্টটি ট্রিগার করেন এটি আসলে সবচেয়ে পরিষ্কার নয়, তাই না?
luigi7up

সম্মত, একটি লুকানো লিঙ্ক ব্যবহার করা একটি হ্যাক। সঠিকভাবে এটা করো.
জামসি

খুব সহজ! ধন্যবাদ! আমার এতে একটি অটোপ্লে ইউটিউব রয়েছে। ভিডিও শেষ হওয়ার সাথে সাথে ডি লাইটবক্সটি বন্ধ করার কোনও উপায় আছে কি?
আন্তোনিও আলমেডা

12

ইহা সহজ:

আপনার উপাদানটিকে এইভাবে প্রথম গোপন করুন:

<div id="hidden" style="display:none;">
    Hi this is hidden
</div>

তারপরে আপনার জাভাস্ক্রিপ্ট কল করুন:

<script type="text/javascript">
    $(document).ready(function() {
        $.fancybox("#hidden");
    });
</script>

নীচের চিত্রটি দেখুন:

এখানে চিত্র বর্ণনা লিখুন

আরেকটি উদাহরণ:

<div id="example2" style="display:none;">
        <img src="http://theinstitute.ieee.org/img/07tiProductsandServicesiStockphoto-1311258460873.jpg" />
    </div>

 <script type="text/javascript">
        $(document).ready(function() {
            $.fancybox("#example2");
        });
    </script>

এখানে চিত্র বর্ণনা লিখুন


10

উইন্ডো.লোড (ডকুমেন্টের বিপরীতে (প্রস্তুতির বিপরীতে) ফেন্সিবক্স ২.০ এর জেএসফিডলার ওভারলোড ডেমোতে ব্যবহৃত কৌশল হিসাবে দেখা যাচ্ছে) :

$(window).load(function()
{
    $.fancybox("test");
});

মনে রাখবেন আপনি অন্য কোথাও ডকুমেন্ট.ডিয়ার () ব্যবহার করছেন এবং আই 9 এই দু'জনের লোড অর্ডার নিয়ে বিরক্ত হয়। এটি আপনাকে দুটি বিকল্প সহ ছেড়ে দেয়: উইন্ডোতে সবকিছু পরিবর্তন করুন load লোড করুন বা একটি সেট টাইমার () ব্যবহার করুন।


এই উত্তরটি আমার পক্ষে আরও ভাল কাজ করে যখন আমি কোনও পৃষ্ঠার আইওএস-এর মতো সতর্কতা পপ আপ দিয়ে শুরু করতে চাই এবং তারপরে এটি বন্ধ করতে সক্ষম হই। আমি যখন এটি প্রয়োগ করার চেষ্টা করেছি তখন সর্বাধিক জনপ্রিয় উত্তরটি এতক্ষণে তৈরি হয়েছিল যখন আমি fancybox ক্লিক করেছি ked উপাদানটি সরে যাওয়ার পরিবর্তে পুনরায় লোড হবে load ধন্যবাদ!
নাথানিয়েল ফ্লিক 22

আপনার উত্তর স্যার সবচেয়ে প্রাসঙ্গিক এবং 100% সঠিক। ধন্যবাদ
শচলক কেউন

8

অথবা আপনার ফ্যান্সিবক্স সেট আপ হওয়ার পরে এটি জেএস ফাইলে ব্যবহার করুন:

$('#link_id').trigger('click');

আমি বিশ্বাস করি যখন আমার যখন এটি করা দরকার তখন ফেন্সিবক্স ১.২.১ আমার পরীক্ষা থেকে অন্যথায় ডিফল্ট বিকল্পগুলি ব্যবহার করবে।


5

কেন এটি এখনও উত্তরগুলির মধ্যে একটি নয় ?:

$("#manual2").click(function() {
    $.fancybox([
        'http://farm5.static.flickr.com/4044/4286199901_33844563eb.jpg',
        'http://farm3.static.flickr.com/2687/4220681515_cc4f42d6b9.jpg',
        {
            'href'  : 'http://farm5.static.flickr.com/4005/4213562882_851e92f326.jpg',
            'title' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'
        }
    ], {
        'padding'           : 0,
        'transitionIn'      : 'none',
        'transitionOut'     : 'none',
        'type'              : 'image',
        'changeFade'        : 0
    });
});

এখন শুধু আপনার লিঙ্ক ট্রিগার !!

এটি ফ্যান্সিবক্স হোমপৃষ্ঠা থেকে পেয়েছি


5

আমি সবচেয়ে ভাল উপায় খুঁজে পেয়েছি:

<script type="text/javascript">
    $(document).ready(function() {
        $.fancybox(
             $("#WRAPPER_FOR_hidden_div_with_content_to_show").html(), //fancybox works perfect with hidden divs
             {
                  //fancybox options
             }
        );
    });
</script>

এটি ব্যর্থ হবে কারণ বিকল্পগুলির ক্লোজিং বন্ধনী মন্তব্য করা হয়েছে।
টেকিন

¡পরিষ্কার এবং সহজ! নিখুঁত কাজ করে। ¡ধন্যবাদ!
ক্যারোলিনা

4

আমার ক্ষেত্রে, নিম্নলিখিতটি সফলভাবে কাজ করতে পারে। পৃষ্ঠাটি লোড হয়ে গেলে লাইটবক্সটি তত্ক্ষণাত পপ-আপ হয়।

জিকুয়েরি: 1.4.2

ফ্যানসি বক্স: ১.৩.১

<body onload="$('#aLink').trigger('click');">
<a id="aLink" href="http://www.google.com" >Link</a></body>

<script type="text/javascript">
    $(document).ready(function() {

        $("#aLink").fancybox({
            'width'             : '75%',
            'height'            : '75%',
            'autoScale'         : false,
            'transitionIn'      : 'none',
            'transitionOut'     : 'none',
            'type'              : 'iframe'
        });
    });
</script>

3

অ্যালেক্সের উত্তর দুর্দান্ত। তবে এটি লক্ষ্য করা জরুরী যে এটির জন্য ডিফল্ট ফেন্সিবক্স শৈলী। যদি আপনার নিজস্ব কাস্টম বিধি থাকে তবে আপনার কেবল কল করা উচিত। নির্দিষ্ট নির্দিষ্ট অ্যাঙ্কারে ক্লিক করুন ট্রিগার ক্লিক করুন

$(document).ready(function() {
$("#hidden_link").fancybox({ 
    'padding':          0,
    'cyclic':       true,
    'width':        625,
    'height':       350,
    'padding':      0, 
    'margin':      0, 
    'speedIn':      300,
    'speedOut':     300,
    'transitionIn': 'elastic',
    'transitionOut': 'elastic',
    'easingIn':     'swing',
    'easingOut':    'swing',
    'titleShow' : false
}); 
    $("#hidden_link").trigger('click');
});

2

আমি আসলে "লাইভ" ইভেন্টটি ব্যবহার করে কেবল একটি বাহ্যিক জেএস ফাইল থেকে একটি অভিনব বাক্স লিঙ্কটি ট্রিগার করতে সক্ষম হয়েছিল:

প্রথমে আপনার ভবিষ্যতের গতিশীল অ্যাঙ্করটিতে লাইভ ক্লিক ইভেন্টটি যুক্ত করুন:

$('a.pub').live('click', function() {
  $(this).fancybox(... fancybox parameters ...);
})

তারপরে, শরীরে অ্যাঙ্কর যুক্ত করুন:

$('body').append('<a class="iframe pub" href="your-url.html"></a>');

তারপরে অ্যাঙ্করটিকে "ক্লিক করে" অভিনব বাক্সটি ট্রিগার করুন:

$('a.pub').click();

ফ্যান্সিবক্স লিঙ্কটি এখন "প্রায়" প্রস্তুত। "প্রায়" কেন? কারণ দেখে মনে হচ্ছে দ্বিতীয় ক্লিকটি ট্রিগার করার আগে আপনাকে কিছুটা বিলম্ব যুক্ত করা দরকার, অন্যথায় স্ক্রিপ্ট প্রস্তুত নয়।

এটি আমাদের অ্যাঙ্করটিতে কিছু অ্যানিমেশন ব্যবহার করে দ্রুত এবং নোংরা দেরি হলেও এটি ভালভাবে কাজ করে:

$('a.pub').slideDown('fast', function() {
  $('a.pub').click();
});

আপনি এখানে যান, আপনার ফ্যান্সিবক্সটি ওভারলোড প্রদর্শিত হবে!

এইচটিএইচ


1

হতে পারে এটি সাহায্য করবে ... এটি পূর্ণ আকারের jQuery ক্যালেন্ডার ক্লিক ইভেন্টে ব্যবহৃত হয়েছিল ( http://arshaw.com/fullcocolate/ ) ... তবে এটি jQuery দ্বারা চালু হওয়া ফ্যান্সিবক্স মোকাবেলা করার জন্য আরও সাধারণভাবে ব্যবহার করা যেতে পারে।

  eventClick: function(calEvent, jsEvent, view) {
      jQuery("body").after('<a id="link_'+calEvent.url+'" style="display: hidden;" href="http://thisweekinblackness.com/wp-content/uploads/2009/01/steve-urkel.jpg">Steve</a>');
      jQuery('#link_'+calEvent.url).fancybox(); 
      jQuery('#link_'+calEvent.url).click();
      jQuery('#link_'+calEvent.url).remove();
    return false;
  }

1

আপনি setTimeout()ডিওএম প্রস্তুত হওয়ার পরে বাক্সের প্রদর্শনে বিলম্ব করতে দেশীয় জাভাস্ক্রিপ্ট ফাংশনটিও ব্যবহার করতে পারেন ।

<a id="reference-first" href="#reference-first-message">Test the Popup</a>

<div style="display: none;">
    <div id="reference-first-message" style="width:400px;height:100px;overflow:auto;">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Nulla et lorem eu nibh adipiscing ultricies nec at lacus. Cras laoreet ultricies sem, at blandit mi eleifend aliquam. Nunc enim ipsum, vehicula non pretium varius, cursus ac tortor. Vivamus fringilla congue laoreet. Quisque ultrices sodales orci, quis rhoncus justo auctor in. Phasellus dui eros, bibendum eu feugiat ornare, faucibus eu mi. Nunc aliquet tempus sem, id aliquam diam varius ac. Maecenas nisl nunc, molestie vitae eleifend vel, iaculis sed magna. Aenean tempus lacus vitae orci posuere porttitor eget non felis. Donec lectus elit, aliquam nec eleifend sit amet, vestibulum sed nunc.
    </div>
</div>

<script type="text/javascript">
    $(document).ready(function() {
        $("#reference-first").fancybox({
            'titlePosition'         : 'inside',
            'transitionIn'          : 'fade',
            'transitionOut'         : 'fade',
            'overlayColor'          : '#333',
            'overlayOpacity'        : 0.9
        }).trigger("click");

        //launch on load after 5 second delay
        window.setTimeout('$("#reference-first")', 5000);
    });
</script>

1

যদি আপনার কাছে ক্লিক করার বোতাম না থাকে। মানে আপনি যদি এজ্যাক্স প্রতিক্রিয়াতে এটি খুলতে চান তবে এটি এমন হবে:

$.fancybox({
      href: '#ID',
      padding   : 23,
      maxWidth  : 690,
      maxHeight : 345
});

1
$(document).ready(function() {
    $.fancybox(
      '<p>Yes. It works <p>',
       {
        'autoDimensions'    : false,
        'width'             : 400,
        'height'            : 200,
        'transitionIn'      : 'none',
        'transitionOut'     : 'none'
       }
    );
});

এইটা সাহায্য করবে..


0

আপনি এই জাতীয় লিঙ্কটি রাখতে পারেন (এটি লুকিয়ে থাকবে before এর আগে হতে পারে </body>)

<a id="clickbanner" href="image.jpg" rel="gallery"></a>

এবং rel এর গুণক বা ক্লাস এর মত কাজ করছে

$(document).ready(function() {
    $("a[rel=gallery]").fancybox({
        openEffect  : 'elastic',
        closeEffect : 'elastic',
        maxWidth    : 800,
        maxHeight   : 600
    });
});

এটি কেবল jquery ট্রিগার ফাংশন দিয়ে করুন

$( window ).load(function() {
  $("#clickbanner").trigger('click');
});

0

এইচটিএমএল:

<a id="hidden_link" href="LinkToImage"></a>

জেএস:

<script type="text/javascript">
    $(document).ready(function() {
        $("#hidden_link").fancybox().trigger('click');
    });
</script>

4
যদিও এই কোডটি প্রশ্নের উত্তর দিতে পারে, কীভাবে এবং / বা কেন এটি সমস্যার সমাধান করে তা সম্পর্কিত অতিরিক্ত প্রসঙ্গ সরবরাহ করলে উত্তরের দীর্ঘমেয়াদী মান উন্নত হবে।
নিক 3500

-1

হতে পারে আপনি jqmodal ব্যবহার করতে পারেন এটি হালকা ও ব্যবহারযোগ্য easy আপনি কল করে মডেল বক্সটি প্রদর্শন করতে পারেন

$('.box').jqmShow() 

আমি মনে করি এটি কাজ করে না কারণ এটি ফ্যান্সিবক্সের ক্লাস নয়
জোসে বাসিলিও

4
আমার ডিজাইনাররা ফ্যান্সিবাক্সের চেহারা এবং অনুভূতি চান এবং আমি এটি জিকিএমডালের জন্য বাস্তবায়নের চেষ্টা করে যেতে পছন্দ করব না। এছাড়াও আমরা ইতিমধ্যে সাইটে ফ্যান্সিবক্স ব্যবহার করছি এবং আমি দুটি ভিন্ন আলোর বাক্স প্রতিরোধ সমর্থন করতে চাই না।
বিলেগার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.