Keep a jQuery dialog in a div

前端 未结 2 829
遇见更好的自我
遇见更好的自我 2021-01-19 13:59

I am trying to create a number of jQuery dialogs but I would like to constrain their positions to inside a parent div. I am using the following code to create them (on a sid

相关标签:
2条回答
  • 2021-01-19 14:14

    I have found a way to do it. This is now my method for creating a dialog:

        var d = $('<div title="Title"></div>').dialog({
            autoOpen: true,
            closeOnEscape: false,
            resizable: false,
            width: 100,
            height: 100
        });
    
        d.parent().find('a').find('span').attr('class', 'ui-icon ui-icon-minus');
        d.parent().draggable({
            containment: '#controlContent',
            opacity: 0.70
        });
    
        $('#controlContent').append(d.parent());
    
    0 讨论(0)
  • 2021-01-19 14:24

    A bit more helpful and complete version of above solution.

    It even limits the resizing outside of the div too!

    And the JavaScript is fully commented.

    // Public Domain
    // Feel free to use any of the JavaScript, HTML, and CSS for any commercial or private projects. No attribution required.
    // I'm not responsible if you blow anything up with this code (or anything else you could possibly do with this code).
    
    jQuery(function($) 
    { 
        // When the document is ready run the code inside the brackets.
        $("button").button(); // Makes the button fancy (ie. jquery-ui styled)
        $("#dialog").dialog(
        { 
            // Set the settings for the jquery-ui dialog here.
            autoOpen: false, // Don't open the dialog instantly. Let an event such as a button press open it. Optional.
            position: { my: "center", at: "center", of: "#constrained_div" } // Set the position to center of the div.
        }).parent().resizable(
        { 
            // Settings that will execute when resized.
            containment: "#constrained_div" // Constrains the resizing to the div.
        }).draggable(
        { 
            // Settings that execute when the dialog is dragged. If parent isn't used the text content will have dragging enabled.
            containment: "#constrained_div", // The element the dialog is constrained to.
            opacity: 0.70 // Fancy opacity. Optional.
        });
    
        $("#button").click(function() 
        { 
            // When our fancy button is pressed the stuff inside the brackets will be executed.
            $("#dialog").dialog("open"); // Opens the dialog.
        });
    });
    

    http://jsfiddle.net/emilhem/rymEh/33/

    0 讨论(0)
提交回复
热议问题